テンプレート・タグ (システム・タグ)

システム・タグは、データベース接続後、条件によらず常に利用できるタグです。

ファンクションタグ

archivedate

現在のアーカイブのタイムスタンプを出力します。

タグ属性

  • ts : タイムスタンプ(省略時は現在のコンテキストの日付となります)
  • format : 日付の書式

archivelink

ブロックタグ「archivelist」の中で、アーカイブのURLを出力します。

archivetitle

ブロックタグ「archivelist」の中、もしくは現在のアーカイブのタイトルを出力します。

assetproperty

現在のモデルのバイナリ/ファイル型カラムにアップロードしたファイルの情報を出力します。

タグ属性

  • name : カラム名
  • property : 取得するプロパティ名(label, file_size, image_width, image_height, mime_type, file_name, class, basename, extension, uploadedのいずれか)

<mt:assetproperty property="label" name="main_picture">

assetthumbnail

  • オブジェクトにバイナリ/ファイル型カラムがある時、サムネイルの実データを出力します。

タグ属性

  • model: 対象のモデル
  • name: カラム名
  • data_uri: Data URI schemeのデータ形式で出力
  • square: 正方形のサムネイルを指定

assetthumbnailurl

オブジェクトにバイナリ/ファイル型カラムがある時、サムネイルを生成して、URLを出力します。

  • model: 対象のモデル(省略時現在のコンテキストモデル)
  • name: カラム名
  • width: サムネイルの幅
  • height: サムネイルの高さ
  • square: 正方形に切り抜く

columnproperty

カラムのプロパティを出力します。例えば選択項目としている時、カンマで区切った選択項目を取得する際などに利用します。

  • model: 対象のモデル
  • name: カラム名
  • property: カラムのプロパティ名(例: options)

currenturlmappingvalue

現在のアーカイブの URLMapping の特定のカラムの値を出力します。

<mt:currenturlmappingvalue column="name">

geturlprimary

現在のページのモデルのプライマリカラムの値(Categoryの場合label、Entryの場合 titleなど)を出力します。

hex2rgba

hex形式で指定したカラーコードを rbga形式に変換します。

  • hex : hex形式のカラーコード (必須)
  • alpha : 色の透明度(省略時0.5)

phpend

「?>」を出力します。

phpstart

「<?php」を出力します。

pluginsetting

  • component : プラグインのクラス名
  • name : セッティング名
  • workspace_id : スペースのID
<mt:pluginsetting component="TinyMCE" name="tinymce_menubar" workspace_id="$workspace_id" _eval="1">

websitecopyright

システムもしくはスペースのコピーライトを出力します。

websitedescription

システムもしくはスペースの「説明」を出力します。

websiteid

スペースのIDを出力します。システムのスコープの場合「0」が出力されます。

websitename

システムもしくはスペースの「名前」を出力します。

websitepath

システムもしくはスペースの「サイト・パス」を出力します。

websiteurl

システムもしくはスペースの「サイトURL」を出力します。

ブロックタグ

タグ属性(共通)

  • include_workspaces : 含めるスペースの指定。カンマ区切りの数字または「this」または「all」
  • workspace_id : 対象のスペースID(システムの場合は「0」を指定)
  • workspace_ids : 含めるスペースの指定。カンマ区切りの数字または「this」
  • exclude_workspaces : 除外するスペースの指定。カンマ区切りの数字

予約変数(共通)

すべてのブロックタグではループの回数に応じて自動的に以下の変数がセットされます。

  • __first__ : ループの初回
  • __last__ : ループの最終回
  • __odd__ : ループの奇数回
  • __even__ : ループの偶数回
  • __counter__ : ループのカウンター
  • __index__ : ループのカウンター(0から始まる)
  • __key__ : 配列またはハッシュのキー(タグ属性'key'の指定のない場合)
  • __value__ : 配列またはハッシュの値(タグ属性'item'の指定のない場合)
  • __total__ : 配列またはオブジェクトの数

archivelist

PowerCMS との違い

  • ブロックタグ「archivelist」に指定できる archive_typeは、日付アーカイブのみ(yearly, fiscal-yearly, monthly, daily)です。
  • URLマップにコンテナを指定し、containerタグ属性を指定することで、記事(entry)以外のモデルも日付アーカイブにすることが可能です。

日付アーカイブの一覧をループ出力します。

タグ属性

  • archive_type(type) : アーカイブ種別
  • container : コンテナモデル(例: entry)

breadcrumbs

パンくずリストを出力します。__key__(__breadcrumbs_url__)、にURL、__value__(__breadcrumbs_title__)にオブジェクトのプライマリカラムの値をセットしてループします。

タグ属性

  • include_system : システム名、システムのサイトURLを含めるかどうか
  • exclude_workspace : スペース名、スペースURLを含むかどうか(指定の場合、含めない)
  • exclude_folders : フォルダのパスを含むかどうか(指定の場合、含めない)

cacheblock

ブロック内をキャッシュします。キャッシュの有効期限は、一覧の再構築処理の間で、再構築処理が終了するとキャッシュは自動的に破棄されます。

タグ属性

  • cache_key : キャッシュのキー

calendar

タグ属性

  • month : 月(タイムスタンプ)もしくは「this(今月)」「last(先月)」省略した場合は現在のコンテキストのタイムスタンプが使われます

予約変数

  • __week__ : Sunday〜Saturdayまでの配列
  • __year__ : 年
  • __month__ : 月(2桁)
  • __date__(__value__) : 日付(1桁または2桁)
  • __week_number__(__key__) : 0(日曜日)〜6(土曜日)の数字
  • __day_of_week__ : Sunday〜Saturdayまでの曜日名の文字列
  • __timestamp__ : YmdHis形式のタイムスタンプ
  • __week_header__ : 一週間の最初(日曜日の時)
  • __week_footer__ : 一週間の終わり(土曜日の時)

テンプレートの例については「テンプレートによるカレンダーの作成」を参照してください。

countgroupby

オブジェクトの特定のカラムの値をカウントします。ループの中では、変数「count_group_by_{カラム名}」に値が格納されます。

タグ属性

  • model : 対象となるモデル
  • count : 集計対象のカラム
  • group : GROUP BYでグループ化するカラム(複数ある時はCSV指定)
  • sort_by : ソートキー
  • sort_order : ソート順
  • limit : 読み込む件数
  • offset : オフセット値(スキップする件数)
  • glue : 値を繋いで出力する場合、その文字
<mt:countgroupby model="entry" count="status" group="status" sort_by="order" glue=",">
  <mt:var name="count_group_by_status">
</mt: countgroupby>

grouploop

「グループ」オブジェクトで選択されたオブジェクトをループ出力します。ブロックの中では、そのモデルのコンテキストがセットされます。

タグ属性

  • name : グループ名
  • id : グループのID(nameかidのどちらか必須)
  • include_draft : 下書きなど、公開以外のオブジェクトを含む

menuitems

「メニュー」オブジェクトで選択されたURLをループ出力します。

※ ナビゲーションメニューを生成して出力する「メニュー」モデル

タグ属性

  • name : メニュー名

予約変数

  • __item_url__(__key__) : メニューアイテムのURL
  • __item_primary__(__value__、__item_label__) : メニューアイテムの名前(プライマリカラムの値)
  • __item_{column名}__ : columnタグ属性指定がある時、該当のカラム値

  • __item_model__ : メニューアイテムのモデル

<mt:menuitems name="グローバルナビ">
<mt:if name="__first__"><ul class="navi"></mt:if>
  <li class="nav-item"><a href="<mt:var name="__item_url__">"><mt:var name="__item_primary__" escape></a></li>
<mt:if name="__last__"></ul></mt:if>
</mt:menuitems>

nestableobjects

階層指定のあるオブジェクトをループ出力します。

タグ属性

  • model : モデル名
  • parent_id : 親オブジェクトのID

以下の例は、カテゴリを階層を反映した形で出力するテンプレートです。

<mt:setvartemplate name="sub_categories">
<mt:nestableobjects model="category" parent_id="$_parent_id">
  <mt:categorylabel />
<mt:if name="has_children">
  <mt:categoryid setvar="_parent_id"/>
  <mt:var name="sub_categories" />
</mt:if>
</mt:nestableobjects>
</mt:setvartemplate>

<mt:categories parent_id="0" sort_by="order">
  <mt:categorylabel />
  <mt:categoryid setvar="_parent_id"/>
  <mt:var name="sub_categories" />
</mt:categories>

setcontext

明示的にコンテキストをセットします。

タグ属性

  • context : モデル名
  • container : コンテナモデル名
  • {プライマリカラム名} : contextで指定したモデルのプライマリカラム名="プライマリカラムの値"
  • path : 階層付きモデルを指定した時、オブジェクトのパス
  • timestamp : タイムスタンプ(開始)
  • timestamp_end : タイムスタンプ(終了)
カテゴリーが「Event」の記事の一覧
<mt:setcontext context="category" label="Event" container="entry">
  <mt:entries>
    <mt:if name="__first__"><ul></mt:if>
      <li><a href="<mt:entrypermalink>"><mt:entrytitle escape></a></li>
    <mt:if name="__last__"></ul></mt:if>
  </mt:entries>
</mt:setcontext>

カテゴリーが「News」配下の「Event」の記事の一覧
<mt:setcontext context="category" path="News/Event" container="entry">
  <mt:entries>
    <mt:if name="__first__"><ul></mt:if>
      <li><a href="<mt:entrypermalink>"><mt:entrytitle escape></a></li>
    <mt:if name="__last__"></ul></mt:if>
  </mt:entries>
</mt:setcontext>

タグ「News」が付けられた記事の一覧
<mt:setcontext context="tag" name="News" container="entry">
  <mt:entries>
    <mt:if name="__first__"><ul></mt:if>
      <li><a href="<mt:entrypermalink>"><mt:entrytitle escape></a></li>
    <mt:if name="__last__"></ul></mt:if>
  </mt:entries>
</mt:setcontext>

タグ「News」が付けられた2018年11月の記事の一覧
<mt:setcontext context="tag" name="News" container="entry"  timestamp="20181101000000" timestamp_end="20181130235959">
  <mt:entries>
   <mt:if name="__first__"><ul></mt:if>
      <li><a href="<mt:entrypermalink>"><mt:entrytitle escape></a></li>
    <mt:if name="__last__"></ul></mt:if>
  </mt:entries>
</mt:setcontext>

条件タグ

ifarchivetype

archive_type属性で指定したタイプのアーカイブが存在する時、値を出力します。

タグ属性

  • archive_type(またはtype) : アーカイブタイプ

条件タグ(管理画面用)

ifusercan

現在のユーザーが特定のモデルに対して指定したアクションが可能な場合に値を出力します。

タグ属性

  • model : 対象のモデル
  • action : アクション(edit, delete, create)
  • workspace_id : スペースのID
  • id : 特定のオブジェクトに対する権限をチェックする場合、オブジェクトのID

ifuserrole

現在のユーザーが指定したロールに紐づけられている場合に値を出力します。

タグ属性

  • role : 対象のロール名
  • inherit : 指定のある場合、システム管理者・スペース管理者の場合にも値が出力されます

isadmin

現在のユーザーがシステム管理者の場合に値を出力します。

グローバル・モディファイア

_eval

テンプレートをビルドします。evalモディファイアとの違いは、{{mt:タグ名}}形式の記述に対応している点です。

convert_breaks

テキストをフォーマットします。

属性値

  • auto(text_formatカラムの値を利用), markdown, convert_breaks(改行を変換)

epoch2str

Unixタイムスタンプを「たった今」「1時間前」のような文字列に変換します。

language

言語を指定して値を翻訳します。現在、指定できるのは「ja」のみです。

sec2hms

「秒(数値)」を「1時間10分30秒」のような形式に変換します。

trans

プラグインの辞書を使って現在の言語に値を翻訳します。

属性値

  • プラグインのクラス名