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>

このタグ内に囲まれた内容は表示されません。

続きます。

| comment(0)