WebSig24/7 MT4分科会第1回終了

昨日は、WebSig24/7 MT4分科会の第1回に参加しました。

1.第1部

第1部は、小粋空間の管理人であるyujiro氏によるセミナーでした。
Movable Type 4のテンプレート関連の新機能について、分かりやすい解説をいただきました。

Movable Type 4では、Movable Type 3までとテンプレートの構造が大きく異なっています。
モジュール化と、変数とMTIfタグによる条件判断が多用されています。
これらの構造を理解することが、MT4のテンプレートを攻略する1つのポイントです。
セミナーの中でも、この点についての解説に時間を多く割いていらっしゃいました。

また、MT4で追加されたアイテムやページなどのタグについても、解説をいただきました。
1時間のセミナーでしたが、内容の濃いものでした。

2.第2部

第2部はグループに分かれて、MT4の課題をその場で解決するといった内容でした。
私はグループのリーダーをさせていただきました。

私のグループでは、「MT4ならではのテンプレート作りをマスターしたい」といった要望がありました。
前述したように、MT4のテンプレートを制する1つのポイントは、変数とMTIfタグです。
そこで、これらの例題として、以下のようなお題を設定して、皆さんにチャレンジしていただきました。

カテゴリーアーカイブページのサイドバーのカテゴリーリストの部分で、そのアーカイブの最新エントリーを10件出力する。

例:カテゴリーA/B/Cの3つのカテゴリーがある場合、カテゴリーAのアーカイブページの場合では、カテゴリーリストを以下のように出力する。

  • カテゴリーA
    • カテゴリーAのエントリー1
    • カテゴリーAのエントリー2
    • ・・・
    • カテゴリーAのエントリー10
  • カテゴリーB
  • カテゴリーC

また、カテゴリーBでは以下のように出力する

  • カテゴリーA
  • カテゴリーB
    • カテゴリーBのエントリー1
    • カテゴリーBのエントリー2
    • ・・・
    • カテゴリーBのエントリー10
  • カテゴリーC

この問題の考え方は、「現在のアーカイブページのカテゴリーと、カテゴリーリスト内の各カテゴリーを比較して、両者が一致しているときだけ最新のエントリーも出力する」というものです。
実際のタグの組み方の例は、以下のようになります。

<MTSetVarBlock name="cat1"><$MTCategoryLabel$></MTSetVarBlock>
<MTTopLevelCategories>
    <MTSetVarBlock name="cat2"><$MTCategoryLabel$></MTSetVarBlock>
    <MTSubCatIsFirst>
        <ul class="widget-list">
    </MTSubCatIsFirst>
    <MTIfNonZero tag="MTCategoryCount">
        <li class="widget-list-item"><a href="<$MTCategoryArchiveLink$>"<MTIfNonEmpty tag="MTCategoryDescription"> title="<$MTCategoryDescription$>"</MTIfNonEmpty>><$MTCategoryLabel$> (<$MTCategoryCount$>)</a>
        <MTIf name="cat1" eq="$cat2">
            <ul>
            <MTEntries lastn="10">
            <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
            </MTEntries>
            </ul>
        </MTIf>
    <MTElse>
        <li class="widget-list-item"><$MTCategoryLabel$>
    </MTIfNonZero>
    <MTSubCatsRecurse>
        </li>
    <MTSubCatIsLast>
        </ul>
    </MTSubCatIsLast>
</MTTopLevelCategories>

1行目のMTSetVarBlockタグでは、アーカイブページのカテゴリーの名前を変数cat1に代入しています。
また、3行目のMTSetVarBlockタグでは、アーカイブリスト内の各カテゴリーの名前を変数cat1に代入しています。
そして、9行目のMTIfタグで2つの変数を比較し、一致しているときだけ、最新のエントリー5件(10行目~14行目)を出力しています。

3.まとめ

第1回のMT4分科会でしたが、内容の濃いものであったと思います。
また、生yujiro氏(?)にお会いできたのも良かったです。
次回は来年1月か2月頃という話でしたが、その時もぜひ参加したいです。
ご参加の皆様、講師のyujiro様、またスタッフの皆様大変お疲れ様でした。