MovableType 4.0のmoduleについて

MovableType 4.0のテンプレートは3.35までの感覚でのモジュールの使い方ではない。昨日よりテンプレート構造を調べ始めて驚いた。

昨日のエントリーでも紹介した、MTGetVarMTSetVarの動作をよく理解できないとどうしようもないので、再度、小粋空間さんの解説を読んでいただきたい。

moduleに細かく分かれていることはMain Indexを見ただけでわかるだろう。さてこのmoduleの使い方であるが、普段使われている感覚ではない。(通常ならばFooterはaddress要素などで、copyrightや文書作成などのメタデータを記述するところであり、ヘッダーはメタデータを記述する部分で区別することが多い)すべてはMTGetVarMTSetVarさらにMTIfMTElseをわかり易くする様に区切られているのではないかと思う。

moduleの中のmodule

Main Indexを見ると、Entry Summaryをincludeした直後にFooterをincludeしている。

さらにfooterからSidebarをincludeしている。

                    </div>
                </div>
<MTIf name="sidebar">
                <$MTInclude module="Sidebar"$>
</MTIf>
            </div>
        </div>
        <!-- <div id="footer">
            <div id="footer-inner" class="pkg">
                Footer Content
            </div>
        </div> -->
        </div>
    </div>
</body>
</html>

4.0ではテンプレート毎に読み込むmoduleが右側に表示されている。関連するmoduleに簡単にアクセスが可能である。このためfooterの中にSidebarをincludeするというような方法はかなりのメリットとなる。

module

MTIfとMTElse

Header、Sidebar、Entry Listingが良く出来ている。3.3がリリースされた際にsearch_results_template.tmplが良く出来ていると感心したのですが、4.0ではHeader、Sidebar、Entry Listing等がMTIfMTElseを利用してうまく制御されているので注目して欲しい。

Sidebar

<div id="beta">
    <div id="beta-inner" class="pkg">
<MTIf name="search_results_template">
    <MTIfTagSearch>
        <MTSetVar name="search_feed_param" value="tag">
        <MTSetVarBlock name="search_feed_description">If you use an RSS reader, you can subscribe to a feed of all future entries tagged &ldquo;<$MTSearchString$>&ldquo;.</MTSetVarBlock>
以下、略

3行目を見ると一目瞭然である。

<MTIf name="search_results_template">

全てのテンプレートに必要な情報を記述し、MTIfで動作を制御。昨日紹介したMain Indexテンプレートの先頭数行の多くはこの部分の動作を制御している。

Entry Listingテンプレート

あるブログで「とうとうdatebased_archive.tmplがなくなった」と書かれていたが、Entry Listingテンプレートの中に記述がある。これもまたMTGetVarMTSetVarMTIfMTElseで制御されている。

author_archiveとmodule_author-monthly_archives

Sidebarをよく見てみるとauthor_archiveやmodule_author-monthly_archivesの記述がある。authorというからには作者やエントリーした本人のことであると思うが、archiveやmonthly_archivesの表示が出来るようである。情報が少ないので、未だ不明ではある。

次回に続く(はずです)

Posted