MT4から追加されたMTIfタグ

方川 2007年07月23日

パワフルなCMSを98,000円で。

Movable Typeで承認フロー、会員サイト構築ができます。

皆さんはじめまして方川です。

今回、あたらしく追加されたタグMTIfについて解説させていただきます。
このタグを使うことで、状況に応じてテンプレートのコードを選択することができます。
以前のバージョンでもプラグインによって提供されていたものがありますが、
MT4ではデフォルトで実装です。
また、MTSetVar、MTSetVarBlockと組み合わせて使うことで複雑な条件に
対応したコードを構築できるようになります。
実際に、MT4のデフォルトテンプレート(MainIndex)を見てみましょう。

<MTSetVar name="body_class" value="mt-main-index">

<MTSetVar name="main_template" value="1">

<MTSetVar name="main_index" value="1">

<MTSetVar name="sidebar" value="1">

<MTSetVar name="module_recent_entries" value="1">

<MTSetVar name="module_category_archives" value="1">

<MTSetVar name="module_author_archives" value="1">

<MTSetVar name="module_monthly_archives" value="1">

このようにページの先頭にMTSetVarコードの宣言部分が並んでいることに
気がつくと思います。
この宣言部分こそ、MTIfタグを生かす為の重要な箇所です。
実際にこの宣言部を生かしている場所はどこかといいますと、すぐ下で宣言されている
MTIncludeタグです。

<$MTInclude module="Header"$>

ここで"Header"というモジュールを呼んでいますね。これが重要です。
モジュールは部品として利用されるもので、できる限り汎用的であるべきです。
限定的なコードの構築では、テンプレートに取り込むときに、コードの記述によっては
使えないことがあるからです。その都度、不都合な部分を書き換えたモジュールを複数用意する
とういうことになってしまいます。ですが、MTIfを利用することで、より汎用的なものとして構築する
ことができます。
では、このモジュールではどのようにMTIfが宣言されているか見てみましょう。

<MTIf name="main_index">

<tlink rel="EditURI" type="application/rsd+xml" title="RSD" href="<$MTLink template="rsd"$>" />

</MTIf>

これはHeaderモジュール内の一部です。MainIndexでMTSetVarにより宣言されていた"main_index"がname属性で指定され使われていることに注目してください。
この行の意味はもしname属性と一緒にvalue属性が設定され、尚且つvalue属性で設定した値が0以外なら、タグで括った部分を利用するということになります。ではこの"mainindex"の値を設定しなかったらどうなるかといいますと、タグで括った箇所は無視されるのです。
ようするにMainIndexテンプレートであるか、どうか、もしそうであるなら、このコードを記述する。という感じです。
説明がくどくなってしましましたが、それでは、実際にMTIfの仕様をざっと記載します。
是非試してください。

■書式


<MTIf 属性1 [属性2]>


 真ブロック... [MTIfを入れ子にできます]...


[<MTElse>]


偽ブロック... [MTIfを入れ子にできます]...


</MTIf>


■属性1 必修です
name="文字列"

■属性2 必要に応じて以下を選択します

  • 指定なし
value属性が設定されていて、尚且つ、0以外である場合真ブロックが利用されます
  • like
value属性に指定されている値/文字列内にlikeで指定した値/文字列が含まれているとき真ブロックが利用されます
  • eq
eqで指定した値/文字列とvalueの値/文字列が一致するとき真のブロックが利用されます
  • ne
neで指定した値/文字列とvalueの値/文字列が一致しないとき真のブロックが利用されます
  • lt
ltの値/文字列 > valueの値/文字列が成立するとき真のブロックが利用されます
  • gt
gtの値/文字列 < valueの値/文字列が成立するとき真のブロックが利用されます
  • le
leの値/文字列 >= valueの値/文字列が成立するとき真のブロックが利用されます
  • ge
geの値/文字列 <= valueの値/文字列が成立するとき真のブロックが利用されます


上記の属性2の例です。使い方は一緒です。

<MTSetVar name="ohayou" value="おはよう">

<MTSetVar name="konnitiwa" value="こんにちは">

<MTIf name="ohayou" like="よう">

<p>選択されました</p>

</MTIf>

上記結果:選択されました

<MTIf name="konnitiwa">

<p>選択されました</p>

</MTIf>

上記結果:選択されました

<MTIf name="ohayou" lt="は">

<p>この場合は文字コードの大小で</p>

</MTIf>

上記結果:この場合は文字コードの大小で

<MTSetVarBlock name="ketugou"><$MTGetVar name="ohayou"$><$MTGetVar name="konnitiwa"$></MTSetVarBlock>

<MTIf name="ketugou" eq="おはようこんにちは">

<p>こんな使い方もできます</p>

</MTIf>

上記結果:こんな使い方もできます

条件式を使いこなして是非効率のいい構築を目指してください。ではでは。

投稿者 方川 : 07/23

Movable Typeを利用したウェブサイト開発はお任せください!

100の企業が認めた成功へ導くCMS構築

スカイアークは創業以来6年間、Movable Typeを一貫して活用し、お客様の様々なウェブサイトをCMS化しました。MTを利用したウェブサイトはスカイアークにお任せください。

MT・CMS構築について詳しく見る

お問い合わせはこちらから お電話でのお問い合わせ03-5475-5101

MTエンジニアブログ

MTCMS Smartキャンペーン!
承認フロー付きCMS「MTCMS Smart(98,000円)」をお買い上げの方、MTライセンス1本がタダに!

配布プラグイン一覧

MultiFileUploader
複数ファイルを一括でアップロードできるMovable Typeプラグイン
ParentalInclude
MT5でウェブサイトとブログのテンプレート連携を便利にするプラグイン
DuplicateEntry
ブログ記事を複製または移動するMovableTypeプラグイン
NotifyAnythingChanged
何かが起きたらメールで通知するMovableTypeプラグイン
rssEntry
取込んだRSSをエントリとして書き出すMovableTypeプラグイン
AutoTagging
面倒な記事のタグ付けを自動化する
FutureRebuild
日時を指定してページを再構築する
EntryImExporter
エントリをCSVに書出したり、CSVから一括登録するMovableTypeプラグイン
MailPack
Movable Typeで簡単携帯投稿!メール投稿プラグイン
DirectoryUtility
カテゴリ・フォルダの階層を表示したり、親フォルダを表示したり、何かと便利なプラグイン
CSVList
CSVデータを整形して表示する
PageBute
静的ページ用ページ分割プラグイン

注目記事

RSS

ページの先頭へ戻る