テンプレート・タグ (ダイナミック・タグ)

利用可能なすべてのテンプレート・タグは MTMLReference プラグインを有効化することにより、管理画面で確認できます。PowerCMS X インストール直後(モデルの作成やカスタマイズを行っていない初期段階)に MTMLReference プラグインが生成したタグリファレンス をこちら に掲載しています。


ダイナミック・タグは、モデルの設定やカラム・リレーションの設定などによって動的にシステムに登録されるタグです。環境によって利用できるもの・できないものがあることに注意してください。

このページでは、基本的なルールと、システムインストール時の標準設定で利用できるテンプレート・タグを中心にご紹介します。

モデル編集画面でのダイナミック・タグの設定

モデルの編集画面でのダイナミック・タグの設定

  • 「テンプレート・タグ」にチェックを入れたモデルでは、ダイナミック・タグが有効化されます。
  • タグプレフィックス「mt」に 複数形(この例では「Entries」) をつなげたもの、この例では「mt:entries」が、entryモデルをループ出力するブロックタグとして利用可能になります。タグ内では、コア・タグ、システム・タグと同じ予約変数(__first__、__last__など)が利用可能なほか、sort_by、sort_order、limit、offsetタグ属性、カラムによるオブジェクトを絞り込むタグ属性が指定可能です(例 : title="PowerCMS X")。
  • タグプレフィックス「mt」に モデル名(この例では「entry」) と カラム名(この例では「text」もしくは「Body」をつなげたもの、この例では「mt:entrytext」または「mt:entrybody」が記事の本文を出力するファンクションタグとして利用可能になります。モデル名とカラム名に英数字以外の文字列、例えば「_(アンダースコア)」を含む時、「_(アンダースコア)」は省略されます(mt+entry+company_name=mt:entrycompanyname、mt+company_press+title=mt:companypresstitle)。
  • カラムの設定が「リレーション」タイプの時、タグプレフィックス「mt」に モデル名(この例では「entry」) と リレーションカラム名(この例では「categories」)をつなげたもの、この例では「mt:entrycategories」が記事に関連づいたカテゴリをループ出力するブロックタグとして利用可能になります。タグ内では、コア・タグ、システム・タグと同じ予約変数(__first__、__last__など)が利用可能なほか、sort_by、sort_order、limit、offsetタグ属性が指定可能です。
  • リレーションが1対1の設定の時(1対1のリレーション設定については、User's Guideを参照してください)、タグプレフィックス「mt」に モデル名、カラム名+「context」をつなげたものが、関連オブジェクトのコンテキストをセットするブロックタグになります(例 : ページのフォルダのコンテキストをセットする「mt:pagefoldercontext」)。
  • モデルに対するアーカイブの設定がある時、タグプレフィックス「mt」に モデル名(この例では「entry」)+「permalink」をつないだもの(「mt:entrypermalink」)が、オブジェクトのパーマリンク(URL)を出力するファンクションタグとして利用可能になります。※1
  • バイナリ/ファイル型のカラムの時、タグプレフィックス「mt」に モデル名、カラム名+「url」をつなげたものが、ファイルのURLを出力するファンクションタグとして利用可能になります。※2
  • オブジェクトに「published_on」カラムが存在する時、タグプレフィックス「mt」に モデル名(この例では「entry」)+「date」をつないだもの(「mt:entrydate」)が、オブジェクトの公開日を出力するファンクションタグとして利用可能になります。
  • オブジェクトが階層指定可能なモデルの時、タグプレフィックス「mt」に モデル名(この例では「entry」)+「path」をつないだもの(「mt:folderpath」)が、オブジェクトのパス(columnタグ属性(省略時basename)をseparatorタグ属性(省略時「/」)でつないだパス)を出力するファンクションタグとして利用可能になります。

PowerCMS との違い

※1 : PowerCMS Xでは、オブジェクトのURLはすべてタグプレフィックス「mt」+「モデル名」+「permalink」となります。記事の場合は「mt:entrypermalink」、カテゴリの場合は「mt:categoryarchivelink」ではなく、「mt:categorypermalink」となります。

※2 : 「asset」モデルのファイルのURLは「asset」モデルのカラム「file」のURLとなるので、「mt:asseturl」ではなく、「mt:assetfileurl」となります。例えば、記事に「og_image」というバイナリ/ファイル型カラムを作成して画像を添付した時は、「mt:entryogimageurl」(「_」は省略)が画像のURLを出力するタグ名となります。

ダイナミック・タグの基本ルール

タグ種別 タグ名の例 説明 備考
オブジェクトのループ mt:entries(ブロックタグ) オブジェクトをループ出力します。 予約変数(__first__、__last__など)が利用可能なほか、sort_by、sort_order、limit、offsetタグ属性、カラムによるオブジェクトを絞り込むタグ属性が指定可能です。参考 : オブジェクトをループ出力するタグ (例 : mt:entries) のさまざまなフィルタリングについて
オブジェクトのカラム値 mt:entrytitle(ファンクションタグ) オブジェクトのコンテキスト内で、カラムの値を出力します。 カラム名とラベルが異なる時、どちらのタグ名も利用できます(mt:entrytext と mt:entrybodyは両方とも同じentryモデルのtextカラムの値を出力します)。カラム名に英数字以外の文字列、例えば「_(アンダースコア)」を含む時、「_(アンダースコア)」は省略されます(entry+og_image=entryogimage)。
1対多のリレーション(ループ) mt:entryassets / mt:entrycategories / mt:entrytags(ブロックタグ) オブジェクトに関連付けられた他のオブジェクトをループ出力します。 予約変数(__first__、__last__など)が利用可能なほか、sort_by、sort_order、limit、offsetタグ属性、カラムによるオブジェクトを絞り込むタグ属性が指定可能です。
sort_by / sort_order指定のない時、関連付けの順番(ダイアログ型の時、ドラッグ&ドロップでソート可能、階層型の時、プライマリが先頭)で出力されます。
ブロック内では、関連付けられたモデルのテンプレート・タグが利用できます(例 :「mt:entrycategories」ブロック内で「mt:categorylabel」)。
1対1のリレーション mt:pagefoldercontext(ブロックタグ) オブジェクトに関連付けられた他のオブジェクトのコンテキストをセットします。 ブロック内では、関連付けられたモデルのテンプレート・タグが利用できます(例 :「mt:pagefoldercontext」ブロック内で「mt:folderlabel」)。
オブジェクトのパーマリンク(URL) mt:entrypermalink / mt:categorypermalink(ファンクションタグ) オブジェクトのコンテキスト内で、オブジェクトのパーマリンク(URL)を出力します。 モデルに対するURLマッピングが存在しない時、このタグは利用できません。モデルに対するURLマッピングが複数存在する時は「優先」URLマッピングによるURLが出力されます。
オブジェクトの公開日 mt:entrydate(ファンクションタグ) オブジェクトのコンテキスト内で、オブジェクトの公開日を出力します。 このタグはモデルに「published_on」カラムが存在する時のみ利用可能です。
オブジェクトのパス mt:categorypath(ファンクションタグ) オブジェクトのコンテキスト内で、オブジェクトのパス(columnタグ属性(省略時basename)をseparatorタグ属性(省略時「/」)でつないだパス)を出力します。 このタグはモデルが階層指定可能な時のみ利用可能です。