おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

r3のテンプレートマークアップ、プロジェクトの保存・読み込み

テンプレートマークアップ

http://sourceforge.net/docman/display_doc.php?docid=51461&group_id=192720 の訳です

<r3:cphp>

テンプレート生成時に実行するPHPコードを記述します。

<r3:cphp>print("Hello, world!");</r3:cphp>

もちろん、テンプレート表示時に実行させるコードは、<?php 〜 ?> で囲むことになります。

<r3:include>

チュートリアルでも出てきていた、サブテンプレートを読み込む構文です

<r3:include path="included.r3" args="1,2,3" />

args属性は、サブテンプレートに渡す引数を含めることができ、上のように 1,2,3 を渡すと

<r3:cphp>
    $args = $context->getTemplateArgs();
    print "first arg is {$args[0]}";
</r3:cphp>

と、最初の引数 1 を受け取ることができます。
配列に見立ててevalしてるようなので(おいおい)、文字列を渡したいときは、args="'abc', 2" とシングルクォーテーションで囲むなりする必要があります。
また、cphpブロック内で設定した変数を渡すこともできます。

<r3:cphp>
    $arg1 = "Hello World!";
    $arg2 = "and Goodnight!";
</r3:cphp>
<r3:include path="included.r3" args="$arg1,$arg2" />
<r3:perl>

未実装とのこと。

<r3:trans>

翻訳させたい箇所を囲みます。

<r3:trans>Text to be translated</r3:trans>
<r3:var>

変数の値を出力させる際に使います。これもテンプレート生成時の話です。

<r3:cphp>
    $num = rand();
</r3:cphp>

You have <r3:var>$num</r3:var> messages.

プロジェクトの保存・読み込み

プロジェクトを、1つのファイルに固めることができます。もちろん、loadも可能です。が、容赦なくクリアして上書きされます。

$ r3 setup save [-f] filename
$ r3 setup load filename

save は -f で、ファイルが存在しても上書きします。

出力されるファイルは、gzipped tar archiveで、解凍すると、各種設定(辞書や、継承ツリーなど)のXMLと、テンプレートを固めたtarが含まれています。