MTOS4.1Boomerで追加されたテンプレートタグ調べました。

  • Posted on
  • by

ついに公開されたMTOS。本家MTから削られる機能は無いどころか、機能追加された最新版がオープンソースとして公開される模様です。
あちこち機能追加があるようですね。色々仕事そっちのけで触ってみていますがおもしろいです。

テンプレートタグも、結構な数が追加されているようです。以下、特に気になったいくつかのタグを、実際に試してみました。

MTFor

指定した回数繰り返すブロックです。あると間違いなく便利なタグですねー。

次のようなモディファイアが利用できるようです。「|」で区切ったものは、同じ動作と思われる物です。

  • from | start
  • to | end
  • increment | step
  • glue
  • var
以下のようなテンプレートの出力は、
<mt:for start="2" end="10" step="2" var="loopnumber">
<mt:getvar name="__counter__">番目のループ、数字は<mt:getvar name="loopnumber">です。</mt:for>
このようになります。
1 番目のループ、数字は2です。
2 番目のループ、数字は4です。
3 番目のループ、数字は6です。
4 番目のループ、数字は8です。
5 番目のループ、数字は10です。
MTIncludeBlock

ちょっと難しそうなブロックタグ。どうやらブロックの内側のテンプレートをビルドした結果を、contentsという変数に設定した上で、モジュールやファイルのインクルードを実行するようです。

たとえば、以下の内容で、「staybold」という名前のモジュールテンプレートを作成します。

<b><mt:getvar name="contents"></b>
で、テンプレート中で以下のように利用すると
<mt:includeblock module="staybold">
    <mt:blogname>
</mt:includeblock>
こう出力されます。
<b> My First Blog </b>
これまた新機能のグローバルテンプレートと組み合わせると便利かもしれません。

右側のインクルードモジュールへのショートカットにリストされないですね。フィードバックしまっせ。

MTSetVars
複数の変数を一括で設定できるブロックタグです。一行に一つずつ、「変数名」=「値」と言う形で記述します。ブロックの中に書かれたMTタグも展開される模様です。
<mt:setvars>
blogname=<mt:blogname>
version=<mt:version>
</mt:setvars>
<mt:getvar name="blogname">は<mt:getvar name="version">で作成されています。
上記テンプレートの出力は次のようになります。
My First Blogはboomerで作成されています。
MTBlogTemplateSetID
MT4.0リリース時の開発者向けカンファレンスでも触れられていた、テンプレートの一括操作に関するタグでしょうか。詳細不明。いまのところ、管理画面からテンプレートセットを操作できる箇所は見あたりません。coreのレジストリにもTemplateSetについての記載があるのですが、登録されているのはデフォルトのテンプレートセットひとつのみでした。これから機能が追加されていくのでしょう。夢がひろがりんぐですね。

以下、その他追加されたと思われるテンプレートタグの一覧です。適当にdiffをとっただけなので間違ってたらごめんなさい。

  • MTIfBlog?
  • MTIfAuthor?
  • MTAuthorHasEntry?
  • MTAuthorHasPage?
  • MTAuthorUserpicAsset
  • MTEntryAuthorUserpicAsset
  • MTCommenterUserpicAsset
  • MTNotifyScript
  • MTCommenterUsername
  • MTCommenterUserpic
  • MTCommenterUserpicURL
  • MTCommenterID
  • MTCommenterURL
  • MTAuthorUserpic
  • MTAuthorUserpicURL
  • MTEntryClassLabel
  • MTEntryAuthorUserpic
  • MTEntryAuthorUserpicURL
  • MTCommentLink
  • MTCategoryCommentCount
  • wrap_text

記事中の記述については、執筆時点の開発版に基づいています。将来的には色々変更があると思います。