2013年3月19日火曜日

MTで同じパーツを使いまわすために覚えること

MTのテンプレートを触っていると、色々と覚えないといけないこともあったり、実現したいことができたりできなかったり^^

MTに用意されているWidgetなどを苦労することなく流用したいことがよくある。ただ、Widgetって、Divタグでくくられていて、idやclassなどが固定化されている。よくわからないとこのWidgetをコピーして、ID名を変更して複数保存していたが、あとで変更が入ったときの手間が大変><。 これは変数を使うと簡単に解決できる。

例えば、


<mt:IfArchiveTypeEnabled archive_type="Category">
<mt:if tag="BlogCategoryCount">
<div id="archives" class="widget-archive widget-archive-category widget">
    <h3 class="widget-header">カテゴリ</h3>
    <div class="widget-content">
    <mt:TopLevelCategories>
        <mt:SubCatIsFirst>
        <ul>
        </mt:SubCatIsFirst>
        <mt:If tag="CategoryCount">
            <li><a href="<$mt:CategoryArchiveLink$>"<mt:If tag="CategoryDescription"> title="<$mt:CategoryDescription remove_html="1" encode_html="1"$>"</mt:If>><$mt:CategoryLabel$> (<$mt:CategoryCount$>)</a>
        <mt:Else>
            <li><$mt:CategoryLabel$>
        </mt:If>
        <$mt:SubCatsRecurse$>
            </li>
        <mt:SubCatIsLast>
        </ul>
        </mt:SubCatIsLast>
    </mt:TopLevelCategories>
    </div>
</div>
</mt:if>
</mt:IfArchiveTypeEnabled>


この3行目のid="archive"をトップページとその他のページで使い分けたい場合、ここに変数名をいれることで対応できる。


<mt:IfArchiveTypeEnabled archive_type="Category">
<mt:if tag="BlogCategoryCount">
<div id="<$mt:Var name="page_id"$>" class="widget-archive widget-archive-category widget">
    <h3 class="widget-header">カテゴリ</h3>
    <div class="widget-content">
    <mt:TopLevelCategories>
        <mt:SubCatIsFirst>
        <ul>
        </mt:SubCatIsFirst>
        <mt:If tag="CategoryCount">
            <li><a href="<$mt:CategoryArchiveLink$>"<mt:If tag="CategoryDescription"> title="<$mt:CategoryDescription remove_html="1" encode_html="1"$>"</mt:If>><$mt:CategoryLabel$> (<$mt:CategoryCount$>)</a>
        <mt:Else>
            <li><$mt:CategoryLabel$>
        </mt:If>
        <$mt:SubCatsRecurse$>
            </li>
        <mt:SubCatIsLast>
        </ul>
        </mt:SubCatIsLast>
    </mt:TopLevelCategories>
    </div>
</div>
</mt:if>
</mt:IfArchiveTypeEnabled>


で、変数の設定は、呼び出すテンプレートの上部に記入しておく。
ここでは、変数名を page_id としている。interviews_top_category が作成したいID名

<mt:SetVarBlock name="page_id">interviews_top_category</mt:SetVarBlock>

0 件のコメント:

コメントを投稿