MTタグだけでプラグイン(みたいなもん)を作る。
公開日 : 2008-02-06 02:22:54
えーっと、面白いもん作ってしまった(<<自分で言うか!?)
このあいだエントリー編集画面でMTEntries等のタグを使えるようにするCMSEntryContextというのを思いつきで作ったのだけど、idが振られていないとエラーになるとかエントリーはいけるけどカテゴリーは駄目とか、「確認」>>「ブログ記事を再編集」だと効かないとかあったので、そのあたり改良して「Entry」を外して「CMSContext」という名前にしました。
何が面白いって、ちょっとムービーでも見てくださいな。
でね、まぁこういったプラグインは確かに良く? あるわけなんですけど、CMSContext.pl は別として、これらの実装には、実は...
Perlのコード1行も書いてないんですよ。
すべてMTタグ(「タグクラウド入力支援」の方はMTタグ+JavaScript/CSS, カテゴリのショートカットの方はMTタグのみ)
JavaScript使っといてノンプログラミングじゃねーだろ! ってのは置いておいて、とにかくテンプレートだけであれこれ出来るんですね。
これまでPerlでプラグイン書くってのが一般的だったんだけど、MT4.1でMTMLがプログラミングチックに書けるようになったわけで、MTタグであれこれやってきたテンプレートいじりの好きなデザイナーさんとかがこれからは面白いの作ってくれるんじゃないかなぁ〜と思うのです。
まぁ、Perlで書かれていない段階でそれを「プラグイン」と呼ぶかどうかわからんのですけどね。
カテゴリの編集画面の右側に「ショートカット」としてカテゴリに属しているエントリーを表示するには、
- プラグインの tmpl/フォルダに edit_category.tmplをコピー
- フッタモジュールの直前に以下のブロックを追加
<mt:setvarblock name="related_content" append="1">
<mt:cmscontext>
<mt:setvarblock name="category"><mt:categorylabel></mt:setvarblock>
<mtapp:widget
id="useful-links"
label="<__trans phrase="Useful links">">
<ul>
<mt:entries lastn="10" category="$category">
<li class="current-filter"><a href="<mt:var name="script_url">?__mode=view&_type=entry&id=<mt:entryid>&blog_id=<mt:blogid>"><mt:entrytitle></a></li>
</mt:entries>
</ul>
</mtapp:widget>
</mt:cmscontext>
</mt:setvarblock>
以上。
気になっているところがあるにはあって、編集画面(__mode=view)が呼び出される段階で、一回エントリーとかカテゴリーはロードされてるわけだから、も一回ロードしなくても取得出来ないのかなぁ...ってなところが気になっていると言えば気になっている(何か文章無茶苦茶やな。あるにはあってとか気になっていると言えば気になってる...とか)。ちょっとソース追いかけてみたけど今日はわからんかった、っていうか仕事たまってて時間がない!
いや、しかしMTで作るの楽!