パンくずリスト for Movable Type 4

Movable Type Tips パンくずリスト

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> &raquo; <$MTGetVar name="page_title"$></li>
</MTIf>
<!-- アーカイブインデックスの場合 終了 -->
<!-- システムテンプレートの場合 開始 -->
<MTIf name="system_template">
<li> &raquo; <$MTGetVar name="page_title"$></li>
</MTIf>
<!-- システムテンプレートの場合 終了 -->
<!-- アーカイブ(年月日)の場合 開始 -->
<MTIf name="datebased_archive">
<li> &raquo; <a href="<$MTLink template="archive_index"$>">アーカイブ</a></li>
<li> &raquo; <$MTGetVar name="page_title"$></li>
</MTIf>
<!-- アーカイブ(年月日)の場合 終了 -->
<!-- ユーザーアーカイブの場合 開始 -->
<MTIfArchiveType archive_type="Author">
<li> &raquo; <a href="<$MTLink template="archive_index"$>">アーカイブ</a></li>
<li> &raquo; <$MTGetVar name="page_title"$></li>
</MTIfArchiveType>
<!-- ユーザーアーカイブの場合 終了 -->
<!-- カテゴリーアーカイブの場合 開始 -->
<MTIfArchiveType archive_type="Category">
<li> &raquo; <a href="<$MTLink template="archive_index"$>">アーカイブ</a></li>
<li> &raquo; <$MTCategoryLabel$>カテゴリ</li>
</MTIfArchiveType>
<!-- カテゴリーアーカイブの場合 終了 -->
<!-- ブログ記事の場合 開始 -->
<MTIfArchiveType archive_type="Individual">
<li> &raquo; <a href="<$MTLink template="archive_index"$>">アーカイブ</a> &raquo; </li>
<!-- ブログ記事のカテゴリ一覧 生成 -->
<MTEntryCategories glue=", ">
<li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$>カテゴリ</a></li>
</MTEntryCategories>
<li> &raquo; <$MTGetVar name="page_title"$></li>
<!-- ブログ記事のカテゴリ一覧 終了 -->
</MTIfArchiveType>
<!-- ブログ記事の場合 終了 -->
</ul>
</MTUnless>
<!-- メインページ以外の場合 終了 -->

以下のソースを表示させたいところに記入。サンプル画像では、ヘッダー・モジュール内の下部に記入した。

スタイルシート

ul#navigator li {
display: inline;
}

<li>をインラインにすることにより、一列に表示。

related story