テンプレートタグ
コンテンツデータ(ページ、記事、レコード等)を、テンプレート上で動的に表示するにはテンプレートタグを利用します。
テンプレートタグは、以下の編集画面で挿入可能です。
タグパレット
テンプレートタグが挿入可能な編集画面では、タグをクリックひとつで挿入できるタグパレット機能が利用できます。
タグパレットを開く
テンプレート編集画面内のエディタ上部にある「パレットを開く」をクリックしてください。
タグパレットダイアログが開きます。
タグを挿入
ダイアログの左側が「利用可能なテンプレートタグの一覧」、ダイアログの右側が「パレット」となります。
テンプレートタグを編集画面上に挿入するには、以下の手順でタグパレットを操作します。
- Step1:ダイアログの左側から、挿入したいタグを選び、「挿入」をクリックしてください。
- Step2:ダイアログ右側の「パレット」にタグが挿入されます。パレットではタグの組み立てを行います。パレット内に他のタグも挿入したい場合は、Step1を再度行ってください。
- Step3:タグの組み立てが完了したら、「エディタに挿入」をクリックしてください。エディタのカーソル位置に、パレット内のタグが挿入されます。
Smarty構文
ECHOPFの標準テンプレートエンジンには、Smartyが採用されています。
テンプレートタグが利用可能な編集画面では、Smarty構文を使用し、簡単なプログラミングを行うことができます。
(ECHOPFにおけるSmarty構文のデリミタは、{? ?}となります。)
ループ構文 {?foreach?}〜{?/foreach?}
ループ構文を使用すると、一覧データ(記事アーカイブやレコードアーカイブ等)から個別要素をひとつずつ取り出し、出力することができます。
ループ構文の仕様は、こちらをご覧ください。
以下は、記事一覧データを展開する例です。
<!-- ループ開始 -->
{?foreach from=$page.entries item=value?}
記事ID :: {?$value.refid?} <br />
リソースタイプ :: {?$value.resource_type?} <br />
記事URL :: {?$value.url?} <br />
記事URLパス :: {?$value.url_path?} <br />
記事日時 :: {?$value.published?} <br />
記事タイトル :: {?$value.title?} <br />
概要文 :: {?$value.description?} <br />
.....
{?/foreach?}
<!-- ループ終了 -->
条件分岐 {?if?}〜{?/if?}
条件分岐を使用すると、定数の値に応じて、出力内容を切り替えることができます。
条件分岐の仕様は、こちらをご覧ください。
以下は、リソースタイプ別に出力内容を切り替える例です。
{?if $page.resource_type == 'entry'?}
<p>アクセスされているページは、個別記事ページです。</p>
{?else?}
<p>アクセスされているページは、個別記事ページではありません。</p>
{?/if?}
予約変数
Smartyの予約変数を使用すると、環境変数やリクエスト変数を取得することができます。
予約変数の詳細は、こちらをご覧ください。
以下は、URLパラメータに「?mode=hogehoge」が含まれる場合に、特定のメッセージを表示する例です。
{?if $smarty.get.mode == 'hogehoge'?}
<p>?mode=hogehogeにアクセスしました。</p>
{?/if?}
Smarty構文の詳細
より詳しい説明は、Smartyの公式マニュアルをご参照ください。