Movable Type 4.1 追加タグ一覧

Movable Type 4.1 追加タグ一覧

Posted at December 14,2007 1:01 AM
Tag:[4.1, MovableType]

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.関連記事

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)