アルファサード株式会社 代表取締役 野田 純生のブログ


AltTemplateでMTタグを使う。


公開日 : 2008-01-30 13:03:35


昨日の続き。

管理画面カスタマイズは基本MTタグで行えますが、より便利で使い慣れたMTタグを扱えるようにします。例えばエントリー編集画面でMTEntriesを使うとか。

Download:

プラグインを放り込んだだけでは何もしません。

例えば、エントリーに「タグ」がついているとして、同じタグがついているエントリーを5件「関連するエントリー」として管理画面に表示させたいとします。

  • alt_tmplフォルダにcmsフォルダを作成して tmpl/cms/edit_entry.tmpl のコピーを置く
  • 1054行目、<mt:include name="include/editor.tmpl"> の直下あたりに以下のようなMTタグを貼付ける

<MTCMSEntryContext>
<MTIf name="id">
<MTEntryIfTagged>
    <mtapp:setting
        id="rerated"
        label_class="top-label"
        label="関連エントリー">
<MTSetVarBlock name="entrytags">
    <MTEntryTags glue=" OR ">
        <$MTTagName$>
    </MTEntryTags>
</MTSetVarBlock>
<MTEntries tag="$entrytags" lastn="5">
    <MTSetVarBlock name="current"><MTEntryID></MTSetVarBlock>
    <MTEntriesHeader>
    <ul style="margin-left:18px;margin-top:5px">
    </MTEntriesHeader>
        <MTIf name="id" ne="$current">
        <li style="list-style-type:disc"><a href="<MTEntryPermalink>"><MTEntryTitle></a></li>
        </MTIf>
    <MTEntriesFooter>
    </ul>
    </MTEntriesFooter>
</MTEntries>
    </mtapp:setting>
</MTEntryIfTagged>
</MTIf>
</MTCMSEntryContext>

反映後の管理画面は以下のような感じになります。

注意点としては、エントリーオブジェクト自身にアクセスしたい場合、<MTIf name="id">のようにして、idの有無をチェックする必要があります。idが無い場合=新規エントリーの投稿になりますので、エントリーがロードできなくてエラーを吐いてしまうからです。もちろんインデックステンプレートで利用出来るタグであればこの分岐は必要ありません。

関連するエントリーを表示させるカスタマイズ

パブリックドメイン。利用に制限は設けません。

MT4.1/MTOSによって新しい仕事ができましたね、マークアップエンジニアの皆様。MT4.1ではカスタムフィールドもありますし、管理画面のユーザビリティ向上のためのカスタマイズはプログラマの手を借りずにマークアップエンジニアのあなたが(誰)が行いましょうね??

Newプラグイン
タグ


このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の創業者であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ