Movable Type 4.1 追加タグ一覧
Movable Type 4.1 で新たに追加されるタグ一覧です。公式サイトでもかなり良質なドキュメントがすでに用意されていますが、やや分かりにくい部分について、ドキュメントからの引用で補足してみました。
1.ブロックタグ
MTFor
いわゆる「for ループ」を行うためのブロックタグです。以下のモディファイアで指定された値にもとづいて、ブロック内を繰り返し処理します。
モディファイア(属性)には下記を設定します。
- from(start)モディファイア:繰り返しの初期値を指定
- to(end)モディファイア:繰り返しの最終値を指定
- increment(step)モディファイア:インクリメント(加算)値を指定。省略時は1ずつ増加
- glue:ループ中の区切り文字を指定
fromが1、toが10、incrementなしであれば、1,2,3,4,5,6,7,8,9,10と、fromの値を1つずつ加算しながら、10になるまで繰り返されます。
JavaScript であれば、
for (i=0; i<10; i++) {
// 繰り返したい処理
}
という感じでしょうか。
サンプル
<mt:for var="x" from="5" to="10" glue= " | ">
<mt:if name="__first__"><p>This is my first time through!</p></mt:if>
<p>now x = <mt:var name="x"></p>
<mt:if name="__last__"><p>This is my last time through!</p></mt:if>
</mt:for>
実行結果(見やすいように折り返してます)
<p>This is my first time through!</p>
<p>now x = 5</p> | <p>now x = 6</p> | <p>now x = 7</p> |
<p>now x = 8</p> | <p>now x = 9</p> | <p>now x = 10</p>
<p>This is my last time through!</p>
変数として下記の予約変数を利用することができます。
- __first__:ループの初回のみ実行
- __last__:ループの最後のみ実行
- __odd__:ループの奇数回目に実行
- __even__:ループの偶数回目に実行
- __index__:ループのインデックスを格納
- __counter__:ループ回数を格納
__index__ と __counter__ 変数の違いは、以下のサンプルで確認することができます。
サンプル
<mt:for var="test" from="10" to="20" increment="2">
<p>now test =
<mt:var name="test"> |
__index__: <MTVar name="__index__"> |
__counter__: <MTVar name="__counter__">
</p>
</mt:for>
実行結果
<p>now test = 10 | __index__: 10 | __counter__: 1</p>
<p>now test = 12 | __index__: 12 | __counter__: 2</p>
<p>now test = 14 | __index__: 14 | __counter__: 3</p>
<p>now test = 16 | __index__: 16 | __counter__: 4</p>
<p>now test = 18 | __index__: 18 | __counter__: 5</p>
<p>now test = 20 | __index__: 20 | __counter__: 6</p>
__counter__ は純粋にループ回数のみを格納しますが、__index__ は「開始値+ループ回数」を格納します。
MTIncludeBlock
既存の MTInclude の機能に加え、テンプレートモジュールをインクルードする際、インクルード元のテンプレートからテンプレートモジュールに任意のコンテンツ(変数)を与えるためのタグです。
インクルード元のテンプレート(例えばメインページ)の内容
<MTIncludeBlock module="Some Module" var="contents">
(do something here)
</MTIncludeBlock>
(do something here) の部分に、テンプレートモジュールに渡したいコンテンツを設定します。
テンプレートモジュール Some Moduleの内容
(header stuff)
<MTVar name="contents">
(footer stuff)
<MTVar name="contents"> の部分に、インクルード元から渡されたコンテンツ(この例では「(do something here)という文字列」)を表示します。
メインページでの実行結果
(header stuff)
(do something here)
(footer stuff)
MTSetVars
複数の変数を一括設定するタグです。
記述フォーマットは「変数名=値」で、複数記述することができます。
<MTSetVars>
変数名1=値1
変数名2=値2
変数名3=値3
:
</MTSetVars>
となります。空行や前後にスペースが含まれていても除去されます。値にファンクションタグも利用可能です。
<MTSetVars>
a=1
b=foo
c=<$MTBlogName$>
</MTSetVars>
下のようにMTIncludeBlockタグと併用することで、テンプレートモジュールとの連携が可能です。
インクルード元のテンプレートのサンプル(テンプレートモジュールに渡すパラメータを設定)
<MTIncludeBlock module="banner">
<MTSetVars>
banner_link=http://example.com/
banner_name=advertisement_a
banner_width=728
banner_height=90
</MTSetVars>
</MTIncludeBlock>
bannerテンプレートモジュールのサンプル
<img src="<$mt:getvar name="banner_link"$>"
alt="<$mt:getvar name="banner_name"$>"
width="<$mt:getvar name="banner_width"$>"
height="<$mt:getvar name="banner_height"$>" />
実行結果
<img src="http://example.com/"
alt="advertisement_a"
width="728"
height="90" />
MTIncludeBlockでbannerをインクルードする時、MTIncludeBlockブロック内のMTSetVarsに設定された変数が、bannerテンプレートモジュールに渡されます。
bannerテンプレートモジュールでは、MTGetVarによって指定した変数(banner_xxx)をインクルード元から受け取り、値をそれぞれ埋め込み、変数が展開されたものをインクルード元のテンプレートにわたします。
MTAuthorUserpicAsset
登録ユーザのプロフィール画像リストを表示します。
MTAuthorsブロックタグ内で有効のようで、ブロックタグ内でアイテム関連のテンプレートタグを利用することができます。
サンプル
<ul><mt:Authors>
<mt:AuthorUserpicAsset>
<li>
<img src="<mt:AssetThumbnailURL width="20" height="20">" width="20" height="20" />
<mt:AuthorName>
</li>
</mt:AuthorUserpicAsset>
</mt:Authors></ul>
MTEntryAuthorUserpicAsset
ブログ記事投稿者のプロフィール画像を表示します。
MTEntriesブロックタグ、ブログ記事アーカイブ等で有効で、ブロックタグ内でアイテム関連のテンプレートタグを利用することができます。
サンプル
<ul><mt:Entries>
<mt:EntryAuthorUserpicAsset>
<li>
<img src="<mt:AssetThumbnailURL width="20" height="20">" width="20" height="20" />
</li>
</mt:EntryAuthorUserpicAsset>
</mt:Entries></ul>
MTCommenterUserpicAsset
コメント投稿者のプロフィール画像を表示します。
MTCommentsブロックタグ内で有効のようで、ブロックタグ内でアイテム関連のテンプレートタグを利用することができます。
サンプル
<ul><mt:Comments>
<mt:CommenterUserpicAsset>
<li>
<img src="<mt:AssetThumbnailURL width="20" height="20">" width="20" height="20" />
</li>
</mt:CommenterUserpicAsset>
</mt:Comments></ul>
2.ファンクションタグ
MTNotifyScript
通知スクリプトのファイル名を表示します。
設定例
<mt:CGIPath><mt:NotifyScript>
実行結果
http://・・・/mt-add-notify.cgi
MTCommenterUsername
コメント投稿者名を表示します。
MTCommenterID
コメント投稿者のIDを表示します。
上記2つのタグのサンプル
<mt:Entries>
<h1><mt:EntryTitle></h1>
<mt:Comments>
<a name="comment-<mt:CommentID>"></a>
<p><mt:CommentBody></p>
<cite><a href="/profiles/<mt:CommenterID>"><mt:CommenterUserName></a></cite>
</mt:Comments>
</mt:Entries>
MTCommenterURL
コメント投稿者のURLを表示します。
MTCommenterUserpic
コメント投稿者のプロフィール画像を表示します。
サンプル
<h2>最近コメントしたユーザー</h2>
<mt:Comments>
<div class="userpic" style="float: left; padding: 5px;"><mt:CommenterUserpic></div>
</mt:Comments>
実行結果
<h2>最近コメントしたユーザー</h2>
<div class="userpic" style="float: left; padding: 5px;"><img src="http://yourblog.com/userpics/1.jpg" width="100" height="100" /></div>
MTCommenterUserpicURL
コメント投稿者のプロフィール画像URLを表示します。
サンプル
<img src="<mt:CommenterUserpicURL>" width="100" height="100" />
MTAuthorUserpic
登録ユーザのプロフィール画像を表示を表示します。
サンプル
<ul><mt:Authors>
<mt:AuthorUserpicAsset>
<li>
<mt:AuthorUserpic>
<mt:AuthorName>
</li>
</mt:AuthorUserpicAsset>
</mt:Authors></ul>
MTAuthorUserpicURL
登録ユーザのプロフィール画像URLを表示を表示します。
サンプル
<img alt="" src="<mt:EntryAuthorUserpicURL>" width="100" height="100" />
MTBlogTemplateSetID
ブログで使用しているテンプレートセットを特定するためのIDを出力するファンクションタグです。
サンプル
<body class="<mt:BlogTemplateSetID>">
結果のIDは"mt-blog"等の文字列が表示されます。
MTEntryClassLabel
コンテンツがブログ記事かウェブページかを表示します。
サンプル
<MTSearchResults>
<div class="search-results-container">
</MTBlogResultHeader>
<mt:SetVarBlock name="type"><mt:EntryClassLabel></mt:SetVarBlock>
<mt:If name="$type" eq="Page">
<$MTInclude module="Page Summary"$>
<mt:Else>
<$MTInclude module="Entry Summary"$>
</mt:If>
<MTBlogResultFooter>
</div>
</MTBlogResultFooter>
</MTSearchResults>
上記のサンプルでは"Page"で判定していますが、日本語環境で実行した場合、ブログ記事で実行すると"ブログ記事"、ウェブページで実行すると"ウェブページ"が返却されるようです。
MTEntryAuthorUserpic
ブログ記事投稿者のプロフィール画像を表示します。
実行結果
<img src="http://yourblog.com/userpics/1.jpg" width="100" height="100" />
MTEntryAuthorUserpicURL
ブログ記事投稿者のプロフィール画像URLを表示します。
サンプル
<img src="<mt:EntryAuthorUserpicURL>" width="100" height="100" />
MTCommentLink
投稿されたコメントへのパーマリンク URL を表示を表示します。
同じ結果になるタグ
<$MTEntryPermalink$>#comment-<$MTCommentID$>
と等しい。
MTCategoryCommentCount
カテゴリーへのコメント数を表示します。
サンプル
<ul><mt:Categories>
<li><mt:CategoryLabel> (<mt:CategoryCommentCount>)</li>
</mt:Categories></ul>
3.MTOSとの差分
以下はMTOSとの差分です。MT4.1のドキュメントには掲載されていませんでした。
以下、推測で書いています。間違っていたらすいません。
MTIfBlog
ブログIDを判定
MTIfAuthor
登録ユーザを判定
MTAuthorHasEntry
ユーザがブログ記事を投稿しているかを判定
MTAuthorHasPage
ユーザがウェブページを作成しているかを判定
モディファイア
wrap_text
4.関連記事
- Movable Type 4.15 公開ベータテスト開始
- Movable Type 4.1 リリース
- Movable Type 4.1 リリース候補第2版公開
- Movable Type 4.1 リリース候補版公開
- Movable Type 4.1 ベータ 3 リリース
- 予約変数一覧 for Movable Type 4.1
- MTLoop タグによる配列変数・ハッシュ変数の制御
- Movable Type 4.1 ベータ 2 リリース
- Movable Type 4.1 / MTOS における変数での算術演算子の利用方法
- Movable Type 4.1 ベータテスト開始