テンプレート構文

基本的な埋め込み記法

val

コントロールコードを削除し、htmlspecialchars でサニタイズ、nl2br で改行コードを <br> に変換の上、埋め込みます。

{val data}

rval

コントロールコードを削除し、埋め込みます。

{rval data}

@

前処理をなにもせずに、そのまま埋め込みます。

{@data}

cdata

コントロールコードを削除し、CDATA として埋め込みます。

{cdata data}

nval

コントロールコードを削除し、int型に変換して、3桁ごとにカンマ区切りにした上で埋め込みます。

{nval data}

tval

コントロールコードを削除し、htmlspecialchars でサニタイズして埋め込みます。
改行を <br> に変換しないので、主に、<textarea> で利用します。

{tval data}

dval

タイムスタンプとして解析し、日付表現に変換の上、埋め込みます。

{dval data}

hval

タイムスタンプとして解析し、日時表現に変換の上、埋め込みます。

{dval data}

jval

コントロールコードを削除し、JSON形式に変換の上、埋め込みます。

{jval data}

配列制御

each 〜 /each

指定したデータが配列の場合、配列として繰り返します。
配列ではない場合は、繰り返しません。
階層のネストも可能です。
データへのアクセスは、階層を / で区切って指示します。

<!--{each list}-->
  {val list/name}
  <!--{each list/text}-->
    {val list/text/body}
  <!--{/each}-->
<!--{/each}-->
$this->pageCanvas->html['list'] = [
  [ 'name' => 'name1' ],
  [ 'name' => 'name2' ],
  [ 'name' => 'name3',
    'text' => [
      ['body' => 'body1'],
      ['body' => 'body2'],
      ['body' => 'body3'],
    ]
  ]
];

配列に対するループインデックスへのアクセス

ループインデックスへのアクセスには、# を使います。

<!--{each list}-->
  {val #list} {val list/name}
  <!--{each list/text}-->
    {val #list/text} {val list/text/body}
  <!--{/each}-->
<!--{/each}-->

配列に対する値への直接アクセス

値への直接アクセスには、* を使います。

<!--{each list}-->
  {val *list/name} {val list/name}
  <!--{each list/text}-->
    {val *list/text/body} {val list/text/body}
  <!--{/each}-->
<!--{/each}-->

存在性の確認

def 〜 ndef 〜 elsedef 〜 elsendef 〜 else 〜 /def

指定したデータが存在するか、存在する場合は true (falseではないこと) を確認します。

<!--{def data}-->
  Data is true.
<!--{/def}-->
<!--{ndef data}-->
  Data is false or not exists.
<!--{/def}-->
<!--{def data}-->
  Data is true.
<!--{else}-->
  Data is false or not exists.
<!--{/def}-->
<!--{def data}-->
  Data is true.
<!--{elsedef data2}-->
  Data is false or not exists, but data2 is true.
<!--{/def}-->
<!--{def data}-->
  Data is true.
<!--{elsendef data2}-->
  Data is false or not exists,
    and data2 is false or not exists.
<!--{/def}-->
<!--{def data}-->
  Data is true.
<!--{elsedef data2}-->
  Data is false or not exists, but data2 is true.
<!--{else}-->
  Data and Data2 is false or not exists.
<!--{/def}-->