Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Template Tag Referenceテンプレートタグリファレンス

MTIncludeBlock

最終更新日: 2017.10.04

MTInclude ファンクションタグと同じくテンプレートモジュールを読み込みます。違いは、読み込んだテンプレートモジュール内の所定の箇所に、MTIncludeBlock ブロックタグで囲んだ内容を差し込める点です。

テンプレートモジュールを読み込む際に、そのテンプレートモジュール内の一部の内容だけ読み込み元で指定したい場合に使用します。

  • 使い方
<mt:IncludeBlock module="banner">
Movable Type へようこそ!
</mt:IncludeBlock>

モディファイア

上記の MTIncludeBlock ブロックタグで読み込む banner テンプレートモジュールの内容を下記とします。

<h1><$mt:Var name="contents"$></h1>
<div class="asset-content entry-content" itemprop="articleBody">
  <p>Movable Type は、安全で効率的なウェブサイト運用を可能にする CMS プラットフォームです。</p>
</div>

MTIncludeBlock ブロックタグで囲んだ内容は、contents 変数に格納されます。

読み込まれた banner テンプレートモジュールの中に記述された <$mt:Var name="contents"$> には、contents 変数の内容が展開されます。

ここでは、<$mt:Var name="contents"$> の部分に、Movable Type へようこそ! が差し込まれるため、最終的な出力内容は以下になります。

■出力サンプル
<h1>
Movable Type へようこそ!
</h1>
<div class="asset-content entry-content" itemprop="articleBody">
  <p>Movable Type は、安全で効率的なウェブサイト運用を可能にする CMS プラットフォームです。</p>
</div>

MTInclude ファンクションタグでも同様の記述が可能です。
以下は、どちらも同じ結果になります。

<mt:IncludeBlock module="banner">Movable Type へようこそ!</mt:IncludeBlock>
<$mt:Include module="banner" contents="Movable Type へようこそ!"$>

初期状態では、MTIncludeBlock ブロックタグで囲んだ内容は、contents 変数に格納されます。この変数名は var モディファイアで変更できます。

MTIncludeBlock ブロックタグ内にテンプレートタグを記述することもできますが、インクルードするテンプレートモジュール内で実際に変数が利用されるまで、テンプレートタグは評価されません。

var="variable_foo"

MTIncludeBlock ブロックタグで囲んだ内容を、指定した名前の変数に代入します。変数は読み込むテンプレートモジュールで参照できます。指定しない場合の初期変数名は contents です。

<mt:IncludeBlock module="banner" var="foo">Movable Type へようこそ!</mt:IncludeBlock>

MTInclude ファンクションタグで以下のように記述した場合と同じ動作をします。

<$mt:Include module="banner" foo="Movable Type へようこそ!"$>
■banner テンプレートモジュールの内容
<h1><$mt:Var name="foo"$></h1>
<div class="asset-content entry-content" itemprop="articleBody">
  <p>Movable Type は、安全で効率的なウェブサイト運用を可能にする CMS プラットフォームです。</p>
</div>
file="file_foo"

指定した外部ファイルを読み込みます。

注意: Movable Type 5.13、5.07、および 4.38 以降のバージョンでは、 file モディファイアが初期状態で無効化されています。これはセキュリティ対策の一環です。テンプレート編集の権限だけをもつユーザーが、ファイルシステム上の任意のファイルを読み出せるのは問題であるためです。

以前のバージョンと同様にこのモディファイアを使うためには、AllowFileInclude 環境変数 を mt-config.cgi に指定してください。

module="module_foo"

テンプレートモジュールを読み込みます。

widget="widget_foo"

ウィジェット単体を読み込みます。

identifier="index_template_identifier"

インデックステンプレートの [テンプレートの種類] 項目で設定する、テンプレートの識別名を指定すると、そのテンプレートを展開します。

インデックステンプレートの主な識別名は以下です。

テンプレート名 識別名
Javascript javascript
RSD rsd
アーカイブインデックス archive_index
スタイルシート styles
メインページ main_index
最新記事のフィード feed_recent
name="foo"

Movable Type が管理画面の表示に使用するテンプレートファイル(tmpl/cms ディレクトリ配下のファイル)を指定します。主に管理画面側で使用するモディファイアで、ブログでは通常使用しません。

blog_id="ID"

module モディファイアを指定してテンプレートモジュールを読み込む場合、自ブログ以外のブログからモジュールを読み込むことが可能です。他のブログから読み込む場合に、テンプレートモジュールが含まれているブログの ID を指定します。

variable_foo="value"

読み込むテンプレートモジュールで参照可能な変数を設定します。

例えば以下のサンプルでは、「フォームフィールド」テンプレート内で id、class、label が定義済みの変数として使用できます。id 変数の値には entry-body、class 変数の値は空、label 変数の値には 本文 が格納されます。

<mt:IncludeBlock module="フォームフィールド" id="entry-body" class="" label="本文" var="foo">Movable Type へようこそ!</mt:IncludeBlock>
global="0 | 1"

値に 1 を指定すると、グローバルテンプレートにあるテンプレートモジュールをインクルードします。初期値は 0 です。

parent="0 | 1"

値に 1 を指定すると、ブログの親ウェブサイトにあるテンプレートモジュールをインクルードします。親ウェブサイトにモジュールが無い場合は、何もしません(グローバルテンプレートのモジュールはインクルードしません)。初期値は 0 です。

local="0 | 1"

初期状態では、指定したテンプレートモジュールが自ブログにない場合、親ウェブサイト、システムレベル(グローバルテンプレート)の順にテンプレートモジュールを探します。このモディファイアの値に 1 を指定すると、明示的に自ブログのテンプレートモジュールをインクルードします。つまり、自ブログにテンプレートモジュールが無い場合は、何もしません(親ウェブサイトやグローバルテンプレートのモジュールはインクルードしません)。初期値は 0 です。

cache="0 | 1" new in mt4.15

読み込むテンプレートモジュールの内容をキャッシュしたいときは、値に 1 を設定します。cache モディファイアのみを付与した場合は、キャッシュのキーは自動発行され、キャッシュの生存時間は 60 分に設定されます。キーや生存時間を別途設定したい場合は、key モディファイアか ttl モディファイアと併用します。初期値は 0 です。

cache_key="cache_key" new in mt4.15
key="cache_key"

キャッシュのキーを設定します。このモディファイアは ttl または cache モディファイアが付与されていれば省略可能です。省略されたときは、自動的にキーが発行されます。

ttl="0" new in mt4.15

キャッシュの生存時間 (単位は秒) を設定します。このモディファイアは key または cache モディファイアが設定されていれば省略可能です。省略されたときは、初期値の 60 分が設定されます。

永久にキャッシュを保持したいときは、値に 0 と設定します。永久にキャッシュを保持する設定は、テンプレートタグで ttl モディファイアを使用した場合に設定できます。

ssi="0 | 1" new in mt4.15

値に 1 を設定すると、読み込むテンプレートモジュール、ウィジェットを SSI (サーバーサイドインクルード) を利用して構築します。初期値は 0 です。

MTIncludeBlock と関連のあるテンプレートタグ (6)

  • 様々なプログラミング言語にある for ループをおこなうためのブロックタグです。指定された値の間、囲まれたコンテンツを繰り返し処理します。

  • テンプレートモジュールや外部ファイルを読み込むときに使うファンクションタグです。モディファイア module や file などにより、読み込む対象を指定します。widget モディファイアを利用すれば、ウィジェット単体の読み込みもおこなえます。

    外部ファイルを読み込む場合、外部ファイルの内容を更新しても、再構築をしない限りブログには反映されません。再構築せずに更新を反映するためには、ダイナミックパブリッシングを利用するか、SSI (サーバーサイドインクルード) や PHP のインクルードを利用します。

    指定したテンプレートモジュールが自ブログにない場合、親ウェブサイトのテンプレートモジュールを参照します。親ウェブサイトにもない場合は、グローバルテンプレートモジュールを参照します。

  • MTInclude ファンクションタグと同じくテンプレートモジュールを読み込みます。違いは、読み込んだテンプレートモジュール内の所定の箇所に、MTIncludeBlock ブロックタグで囲んだ内容を差し込める点です。

    テンプレートモジュールを読み込む際に、そのテンプレートモジュール内の一部の内容だけ読み込み元で指定したい場合に使用します。

  • ハッシュ(配列)変数をモディファイア name または var で指定すると、指定されたハッシュ(配列)の内容に応じてタグで囲まれた内容を繰り返し処理します。

  • このタグは現在、非推奨です。MTWidgetSet タグを使用してください。

    name モディファイアで指定したウィジェットセットを表示します。

    このテンプレートタグは MTWidgetSet ファンクションタグと同じ機能を持ちます (エイリアス)

  • name モディファイアで指定したウィジェットセットを表示します。