nazolabo

フリーランスのWebエンジニアが近況や思ったことを発信しています。

template

※間違ってたらごめんなさい
rhacoのテンプレートは基本的に

  • {}で囲むと変数表示(Smartyみたいな感じ)
  • ループやifは

になっている。

rt:タグの解説(わかる範囲で)

タグ名 引数 解説
param="条件式" value="条件式の結果(Boolean判定なら不要)" if
ifと同じ ifの反対
else
param="配列" var="格納する変数" counter="カウンタ変数" key="配列のキーを格納する変数" foreachと同等
counter="格納する変数" start="開始値" end="終了値" step="増加値" for ( counter = start ; counter < end ; counter += step )
コメント(出力されない)
name="ブロック名" ブロック領域を指定
href="テンプレートファイル名" ブロックを置換
src="置換前" dest="置換後" テンプレート内の文字列srcをdestに置換する
name="" errors="" join="" var=""
localeに合わせて置換する
param="" single="" 複数形判断で取得する(?)
href="テンプレートファイル名" 継承
href="テンプレートファイル名" ファイルを読み込む

ブロック

ブロックの使い方は、たとえば元のテンプレートで

<rt:block name="block01">
abc
</rt:block>

と定義する。このままだと普通に「abc」って表示されるんだけど、この後に

<rt:setblock href="block.html" />

と記述し、block.htmlには

<rt:block name="block01">
def
</rt:block>

とすると、元のテンプレートの出力は「def」になる、という仕組みらしい。

継承

継承は、ブロックと逆の動作だと思えばいい。
例えばa.htmlに

<html>
<body>
<rt:block name="block01">aiueo</rt:block>
</body>
</html>

と記述し、b.htmlに

<rt:extends href="a.html" />
<rt:block name="block01">kakikukeko</rt:block>

と記述し、b.htmlを表示されると、a.htmlのblock部分がb.htmlのblock部分に置き換わったものが出力される。