MT4から追加されたMTIfタグ

方川 2007年07月23日

このようなコンテンツはいかがですか?

このページ以外にも下記がオススメです

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

今回、あたらしく追加されたタグ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>

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

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

トラックバック

MT4へバージョンアップしました

MvabaleType4にさっそくバージョンアップしました。 バージョンアップ方...

OKANOWEB.NET2007年8月15日 12:05

コメントする

この記事にご意見やメッセージがございましたらコメントをお願いいたします。

  • ※ コメントは承認後に公開されます。内容によってはご返信致しかねる場合がございます。
お問い合わせはこちらから お電話でのお問い合わせ03-5475-5101

MTエンジニアブログ

Solanowa ウェブ社内報
「SKYARC Solanowa」を利用したウェブ社内報を作成する構築サービス

配布プラグイン一覧

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

ページの先頭へ戻る