テンプレート構文
基本的な埋め込み記法
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}-->