Sep 7
逆引きrhaco53: rhacoのテンプレートで使用するタグまとめ
出てくるごとに説明するのが大変になりそうなので、ここでまとめます。私が良く使う順に紹介します。
変数割り当て:
rhacoでは変数を割り当てる時にSmartyと同様に
{$変数名}
を用います。また、配列、オブジェクトのプロパティ、オブジェクトのメソッド呼び出しも出来ます
{$hoge['fuga']} //配列
{$hoge.fuga} //オブジェクトのプロパティ
{$hoge.fuga($hage)} //オブジェクトのメソッド返り値
予約されている変数として{$rhaco},{$env},{$f}があります。それぞれRhacoオブジェクト、Envオブジェクト、TemplateFormatterオブジェクトが登録されおり、各メソッドが使用できます。
参照:
rt:reference(タグ内で使う) 例 <form rt:reference="true">出力前にsetVariableで値を指定されていた場合、その値を表示するタグ。formタグならform内全てに適用されたり、selectに適用することも出来たり非常に便利な機能。
ループ
<rt:loop param="{$hoge}" var="fuga">
</rt:loop>
の<rt:loop>タグはループを行います。paramで指定した値がループする元になる配列、varはループ中の各値です。PHPに置き換えると
foreach($hoge as $fuga){...}
となります。
分岐:
<rt:if param="{$hoge}" value="fuga">
...
<rt:else />
...
</rt:if>
PHPで書くと下のようになります
if($hoge==='fuga'){
...
}else{
...
}
<rt:else>は無くてもOKです。
個人的にloopのvarとifのvalueがごっちゃになることが多いので注意が必要です。
継承:
<rt:extends href="./main.html" />
は同じ階層のmain.htmlを継承したテンプレートという宣言です。継承についてはjigelogで詳しく解説されています。
ブロック:
<rt:block name="content"> ... </rt:block>
継承元であるmain.htmlに同じブロックタグがある場合、それが置き換えられることになります。継承元にタグが無い場合は表示されません。
コメントアウト:
<rt:comment> ... </rt:comment>
このタグ内に囲まれた内容は表示されません。
続きます。