テンプレート・タグ (コア・タグ)

ファンクションタグ

var

変数から値を呼び出します。 タグ属性 value を指定した場合は setvar ファンクションタグと同じ動作になります。

タグ属性

  • name(必須): 変数名
  • value : 値をセットする場合、その値
  • append : 既存の変数の後ろに、指定した値を連結します
  • prepend : 既存の変数の前に、指定した値を連結します

getvar

テンプレート変数の値を出力します。変数名が文字列であることがわかっている場合、'var'よりこちらのほうがより高速です。

gethashvar

変数名とキーを指定して値を出力します。

タグ属性

  • name(必須): 変数名
  • key : 配列(ハッシュ)のキー
<mt:gethashvar name="変数名" key="キー">
// これは、以下と同様です。
<mt:var name="変数名[キー]">

setvar

テンプレート変数に値を設定します。

タグ属性

  • name(必須): 変数名
  • var : 'name' の別名
  • value : セットする値
  • append : 既存の変数の後ろに、指定した値を連結します
  • prepend : 既存の変数の前に、指定した値を連結します

PowerCMS との違い

  • setvar(ファンクションタグ/グローバルモディファイア) 及び setvarblock(ブロックタグ)では、PHPコード内でセットしたテンプレート変数の上書きはできません。

trans

値を翻訳します。管理画面の「フレーズ」に登録の辞書、あるいは locale/ディレクトリ以下の「言語名.json」ファイルのデータを利用します。

タグ属性

  • phrase : 翻訳する文字列
  • params : sprintf 関数を使ってフォーマット整形する場合、渡す値 (複数の値を指定するときは CSVを指定します)
  • component : プラグイン・クラスの名前

date

現在の日付を出力します。

  • ts : タイムスタンプ(14桁の数字)
  • format : PHPの dateファンクションに渡す引数の形式での日付の様式

fetch

url属性で指定したURLのデータを出力します。

タグ属性

  • url(必須): URL
  • ua : user_agent に指定する文字列

count

name属性で指定した配列変数の要素数を返します。

タグ属性

  • name(必須): 変数名

query

クエリ文字列($_GET)を連結した文字列を出力します。

タグ属性

  • excludes: 除外するキーまたはキーの配列

math

変数を計算します。

タグ属性

  • eq: 計算式

<mt:math eq="x + 1" x="$__value__" setvar="__value__">

この例では、__value__が「1」の時、__value__に「2」をセットします。

参考 : https://www.smarty.net/docsv2/ja/language.function.math.tpl

include (インクルードタグ)

現在のテンプレートに別のモジュールや外部ファイルの内容を含めます。ウェブサイト・パスより上位のディレクトリにあるファイルを含めることはできません。

タグ属性

  • module : インクルードするモジュールの名前
  • file : インクルードするファイルのパス
  • workspace_id : モジュールのあるワークスペースのID
  • cache_key : ユニークな値を指定すると、モジュールのビルド結果をキャッシュして高速化できます。
  • その他のタグ属性で指定した値はインクルードしたファイル内部でのみ利用できるローカル変数になります。

ブロックタグ

block

囲まれたブロックを1回だけ処理して内容を出力します。 name 属性が指定されていて、変数に値が格納されている場合はそちらが出力されます。

タグ属性

  • name : 結果を出力せずに変数に結果を格納します
  • append : コンテンツを親テンプレートの block に追記します
  • prepend : コンテンツを親テンプレートの block の前に置きます。
  • その他の値を指定すると、ブロック内部でのみ利用できるローカル変数になります。

loop

タグ属性 name または from で指定された配列またはオブジェクトをループ出力します。

タグ属性

  • name(必須): ループ出力する配列またはハッシュの変数名
  • from : 'name' の別名
  • key : 配列またはハッシュの「キー」を格納する変数名
  • item : 配列またはハッシュの「値」を格納する変数名
  • sort_by : 配列の並べ替えの定義(例: sort_by="value,numeric,reverse")
  • glue : 繰り返し処理の際に、指定された文字列で各ブロックを連結します

予約変数

ループの回数に応じて自動的に以下の変数がセットされます

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

for

指定された値の間、ブロックを繰り返し出力します。

タグ属性

  • to(end or loop) : 値を越えた場合、ループは終了します。省略した場合、1回ループします
  • from(start) : ループの初期値。省略時は1となります
  • increment(step) : 1回のループで増加する値(省略時は、1ずつ増加します)
  • var : 「値」を格納する変数名(省略時は予約変数'__value__')
  • glue : 繰り返し処理の際に、指定された文字列で各ブロックを連結します

予約変数

ループの回数に応じて自動的に以下の変数がセットされます。

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

ignore

このブロックの中は出力されません(テンプレート・コメント)。

literal

ブロックの内容はビルドされず、 そのまま表示されます。

setvarblock

ブロックの内容を出力する代わりに変数に格納します。 これは、何らかのブロックタグに'setvar'モディファイアを指定した時の動作と同じです。

タグ属性

  • name(必須) : 変数名
  • append : 既存の変数の後ろに、指定した値を連結します
  • prepend : 既存の変数の前に、指定した値を連結します

setvars

各行ごとに記述された変数をまとめて設定します。キーと値の区切り文字は '='です。
'name'属性を指定すると、その変数名に配列をセットします。

<mt:setvars>
_url       = https://powercmsx.jp/
_site_name = PowerCMS X
_site_desc = <mt:var name="description">
</mt:setvars>

sethashvars

setvars と同じ形式で name属性に指定したキーにハッシュ変数を組み立ててセットします。

タグ属性

  • name(必須) : 変数名
<mt:sethashvars name="weather_description_ja">
  clear_sky=晴天
  few_clouds=晴れ
  broken_clouds=曇り
  shower_rain=豪雨
  rain=雨
  thunderstorm=雷雨
  snow=雪
  mist=霧
</mt:sethashvars>

queries

クエリ文字列($_GET)をループ出力します。

タグ属性

  • excludes: 除外するキーまたはキーの配列

条件タグ

if

条件を満たした場合に内容を出力します。条件を満たさない場合に実行する場合は、unless 条件タグを使用するか、if 条件タグの中で else, elseif 条件タグを利用します。

タグ属性

  • name(必須) : 変数名
  • eq : 変数の値が属性値と同等である
  • ne(not) : 変数の値が属性値と同等でない
  • gt : 変数の値が属性値より大きい
  • lt : 変数の値が属性値より小さい
  • ge : 変数の値が属性値以上
  • le : 変数の値が属性値以下
  • like : 変数の値が属性値を含む
  • test : 式を評価する

ifgetvar

単に、name属性に指定した変数の値の有無で分岐し、if文より高速です。

else

if または unless ブロックの中で、条件に一致しなかったときにこのタグ以降の内容が出力されます。

elseif

if または unless ブロックの中で、別の条件を指定する時にこの条件タグを利用します。if 条件タグと同じタグ属性が利用できます。

elseifgetvar

if ブロックの中で、別の条件を指定する時にこの条件タグを利用します。
ifgetvar 条件タグと同じくname属性に指定した変数の値の有無で分岐し、elseif文より高速です。

unless

条件を満たさなかった場合に内容を出力します。if 条件タグと同じタグ属性が利用できます。

ifinarray

name(array) 属性に指定した配列に値 valueを含む場合に値を出力します。

タグ属性

  • name または array (必須) : 変数名
  • value : 変数の値

isarray

name(array) 属性に指定した変数が配列の場合に値を出力します。

タグ属性

  • name または array (必須) : 変数名

isset

name属性に指定した変数が定義済みの場合に値を出力します。

タグ属性

  • name : 変数名

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

escape

値をHTMLエンティティに変換または その他の形式にエンコードします。

属性値

  • "1" or "html" (HTMLエンティティに変換) or "url" or "xml" or "php"

default

値が空の時、指定した属性値を出力します。

setvar

出力されるべき値を出力せずに変数に格納します。

属性値

  • 変数名

format_ts

日付文字列をフォーマットします。

strtotime

英文形式の日付を Unix タイムスタンプに変換します。

remove_html

HTMLタグとPHPタグを削除します。

decode_html

 HTML エンティティを適切な文字に変換します。

encode_js

JavaScriptの文字列として扱えるように値をエスケープします。

encode_xml

値をXMLフォーマットに適した形式にエンコードします。

upper_case

文字列を大文字にします。

lower_case

文字列を小文字にします。

title_case

最初の文字を大文字にします。

base64_encode

 MIME base64 方式でデータをエンコードします。

trim

文字列の先頭および末尾にあるホワイトスペースを取り除きます。

ltrim

文字列の最初から空白(もしくはその他の文字)を取り除きます。

rtrim

文字列の最後から空白(もしくはその他の文字)を取り除きます。

truncate

指定したキャラクタ数で値を切り捨てます。

参考 => http://www.smarty.net/docsv2/ja/language.modifier.truncate.tpl or https://www.powercms.jp/products/document/modifiers/trim_to.html

trim_to

'truncate'の別名です。

zero_pad

指定した文字数になるよう、先頭の余白を0で埋めます。

strip_linefeeds

改行を削除します。

numify

モディファイアを付与したファンクションタグの値に含まれる数字 (のみ、もしくは値の一番最初) を適切な形式に ,(カンマ) で区切ります。

sprintf

フォーマットされた文字列を返します。

nl2br

改行文字の前に HTML の改行タグを挿入します。

replace

検索文字列に一致したすべての文字列を置換します。

regex_replace

変数に対して正規表現による検索・置換を行います。
正規表現は、PHPマニュアルの preg_replace() の構文を使用してください。

relative

URLをルートからの相対パスに変換します。

add_slash

文字列の末尾が「/(スラッシュ)」でないときのみ、「/(スラッシュ)」を追加します。

format_ts

タイムスタンプをPHPの dateファンクションに渡す引数の形式で変換します。

wrap

指定した文字数でテキストを改行文字で折り返します。

trim_space

1を指定すると、ホワイトスペースをトリミングします。 2を指定すると、改行文字をトリミングします。 3を指定した場合、その両方となります。

merge_linefeeds

連続した空行を 1つにまとめます。

to_json

テンプレート変数を指定してJSON文字列を出力します。

from_json

JSON文字列をデコードして属性値に指定した変数にセットします。

eval

テンプレートをビルドします。

array_pop

属性値に指定した配列の末尾から要素を取り除きます。このモディファイアを指定したときは、タグは何も出力しません。

split

文字列を属性値で区切って配列化します。

join

属性値に指定した配列を属性値で繋いで出力します。

format_size

数字をGB(ギガバイト)、MB(メガバイト)、KB(キロバイト)、Byteいずれかの形式で出力します。