【Movable Type】予約変数についてよく使うものをまとめてみました

【Movable Type】予約変数についてよく使うものをまとめてみました

8年乗っている車もが今月車検なので、消費税も上がるし新しい車を購入しようかと思って通帳を確認したら、そんなお金はウチにないことを実感しました ishida です。
また太りだしたせいか、最近ウチの軽自動車の運転席が狭く感じるんですね。。。

さてさて、年末あたりから とある案件でMovable Type をゴリゴリしていて、それからもMovable Typeをカスタマイズする日々が続いております。

Movable Typeをカスタマイズする際、
極力モジュールの数を少なくして、対応しようと心がけています。
モジュールが多くなりすぎると、運用後 修正が入った場合に影響範囲が把握しにくくなってしまう為です。

モジュール数を少なくするには、機能単位でモジュールを1つにまとめ、さらに条件分岐をうまく使うことが重要になってきます。
Movable Typeでは、それぞれのアーカイブテンプレート自体に 予め設定されている 予約変数 というものがあります。

これを使えば、分岐処理がかなりスマートになり効率もあがりますので ちょっとまとめてみようと思います。

Movable Type の予約変数は

通常、Movable Type は以下のような形式で 変数 を設定します。

<$MTSetVar name="hoge" value="1"$>

ですが、各テンプレート内で すでに変数を保持しているのもが「予約変数」です。

Movable Type には、予約変数がたくさんあります。

繰り返し処理で使える予約変数

__first__ 最初の1回だけ
__last__ 最後の1回だけ
__odd__ 奇数回だけ
__even__ 偶数回だけ
__counter__ カウント数を保持

上記の予約変数たちは、アンダースコア2つ(__)が前後につきます。

上記予約変数を使用したMTカスタマイズサンプル

<MTEntries>
<MTIf name="__first__">
最初の1回だけ処理
</MTIf>
<MTIf name="__first__">
奇数回だけ処理
</MTIf>
<MTIf name="__first__">
偶数回だけ処理
</MTIf>
<MTIf name="__last__">
最後だけの処理
</MTIf>
<MTIf name="__counter__" eq="3">
3回目だけ処理
</MTIf>
</MTEntries>

各テンプレートに設定される予約変数

次に、各テンプレートに設定される予約変数をご紹介します。
こちらはよく使うものだけを抜粋します。

main_index メインページ
archive_index アーカイブインデックス
archive_listing ブログ記事リスト
category_archive ブログ記事リスト(カテゴリ)
author_arhive ブログ記事リスト(ユーザー別)
entry_archive ブログ記事
page_archive ウェブページ

各テンプレートに設定される予約変数を使ったサンプル

記事一覧ページでの、記事の概要パーツをモジュール化してみます。

モジュール(記事の概要)パーツの読み込み

<MTEntries>
<$MTInclude module="記事の概要"$>
</MTEntries>

モジュール(記事の概要)のカスタマイズサンプル

<MTIf name="main_index"> /* メインページの場合  */
<h1><$mt:CategoryLabel$></h1>
</MTIf>
<MTIf name="archive_index">  /* アーカイブインデックス  */
<p class="category-b"><$MTEntryCategory$></p>
</MTIf>
<MTIf name="category_archive"> /* ブログ記事リスト(カテゴリ)  */
<p class="category-a"><$MTEntryCategory$></p>
</MTIf>
<p class="date"><$MTEntryDate format="%Y.%m.%d"$></p>
<h2><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></h2>
<p><$MTEntryExcerpt convert_breaks="0" words="80"$></p>
</div>

テンプレートの種類によって分岐して表示を変更したい場合は、上記のようにカスタマイズします。

まとめ

ついつい時間がないと、モジュール化もあとまわしにしてしまいがちですが
モジュール化がきれいにできていると、後々の修正が効率的になりますね。

Movable Type 6 本格活用ガイドブック (Web Designing BOOKS)
Movable Type 6 本格活用ガイドブック (Web Designing BOOKS)藤本 壱 柳谷 真志 奥脇 知宏 シックス・アパート株式会社

マイナビ 2013-11-30
売り上げランキング : 234140


Amazonで詳しく見る
by G-Tools
  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ