
Movable Type 4 向けの「パンくずリスト」を作ってみた。MT4で登場した<MTIf>を組み合わせることによって、ページのタイプによって表示を制御する。ちょっと眺めのソースだけど、これをヘッダー・モジュールなどに組み込めば、立派な「パンくずリスト」の出来上がりだ。
<MTIf>を制する者はMovable Typeを制する!!
ソースはページ下部にずらーっと書いてあるので、最後にサンプルとして読んで欲しい。今回は「<MTIf>」と「<MTUnless>」を積極的に利用して、ページタイプによって表示するものを変えているんだけれども、この「<MTIf>」、今回のバージョンアップの一番の目玉と言っていいほど柔軟性に富んでいて、Movable
Typeの可能性を広げてくれる。
簡単に説明しよう。冒頭の<MTUnless name="main_index">〜</MTUnless>は、main_indexという、nameモディファイアの値が設定されているページ以外表示させるというもの。このmain_indexという値は、メインページにしかデフォルトで設定されていないので、メインページ以外は表示するということになる。
次の<MTIf name="archive_index">〜</MTIf>は、nameの変数がarchive_indexの場合のみ表示。デフォルトの場合は、アーカイブインデックスのみがこの値を返す。<MTIf
name="system_template">はシステムテンプレートが返す値のみを表示だ。
途中に表記されている<MTIfArchiveType>〜</MTIfArchiveType>は、指定したアーカイブタイプのみ表示させるというMTタグ。
<MTIfArchiveType archive_type="Individual">あいうえお</MTIfArchiveType>
上記の場合は、ブログ記事のページの場合に「あいうえお」と表示される。アーカイブテンプレートだけを制御さえたい場合には重宝するだろう。
このような調子で、ここの部分はこのページだけ表示。ここはこのページだけ非表示。という具合にテンプレートを作り上げていく。これは「パンくずリスト」だけではなく、Movable
Type 4 全体のテンプレートに言えることで、<MTIf>をある程度わかるようになれば、全体のテンプレートも把握できるようになる。<MTIf>を制する者は、Movable
Typeを制すると言っても過言ではないぞ!

ページのタイプによって切り替わるパンくずリスト。とってもMovable Type 4らしい。
ソース
<!-- メインページ以外の場合 開始 --> <MTUnless name="main_index"> <ul id="navigator"> <li><a href="<$MTBlogURL$>">ホーム</a></li> <!-- アーカイブインデックスの場合 開始 --> <MTIf name="archive_index"> <li> » <$MTGetVar name="page_title"$></li> </MTIf> <!-- アーカイブインデックスの場合 終了 --> <!-- システムテンプレートの場合 開始 --> <MTIf name="system_template"> <li> » <$MTGetVar name="page_title"$></li> </MTIf> <!-- システムテンプレートの場合 終了 --> <!-- アーカイブ(年月日)の場合 開始 --> <MTIf name="datebased_archive"> <li> » <a href="<$MTLink template="archive_index"$>">アーカイブ</a></li> <li> » <$MTGetVar name="page_title"$></li> </MTIf> <!-- アーカイブ(年月日)の場合 終了 --> <!-- ユーザーアーカイブの場合 開始 --> <MTIfArchiveType archive_type="Author"> <li> » <a href="<$MTLink template="archive_index"$>">アーカイブ</a></li> <li> » <$MTGetVar name="page_title"$></li> </MTIfArchiveType> <!-- ユーザーアーカイブの場合 終了 --> <!-- カテゴリーアーカイブの場合 開始 --> <MTIfArchiveType archive_type="Category"> <li> » <a href="<$MTLink template="archive_index"$>">アーカイブ</a></li> <li> » <$MTCategoryLabel$>カテゴリ</li> </MTIfArchiveType> <!-- カテゴリーアーカイブの場合 終了 --> <!-- ブログ記事の場合 開始 --> <MTIfArchiveType archive_type="Individual"> <li> » <a href="<$MTLink template="archive_index"$>">アーカイブ</a> » </li> <!-- ブログ記事のカテゴリ一覧 生成 --> <MTEntryCategories glue=", "> <li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$>カテゴリ</a></li> </MTEntryCategories> <li> » <$MTGetVar name="page_title"$></li> <!-- ブログ記事のカテゴリ一覧 終了 --> </MTIfArchiveType> <!-- ブログ記事の場合 終了 --> </ul> </MTUnless> <!-- メインページ以外の場合 終了 -->
以下のソースを表示させたいところに記入。サンプル画像では、ヘッダー・モジュール内の下部に記入した。
スタイルシート
ul#navigator li {
display: inline;
}<li>をインラインにすることにより、一列に表示。