サンプルテンプレート

<!-- tmpl:comment -->
テンプレートエンジン サンプルテンプレート tmpl: = テンプレートエンジン コマンドヘッダ(半角英小文字のみ) % = 変数記号(任意の記号に変更可) comment/endcomment = コメントブロック command/endcommand = コマンドブロック ifdef/ifundef/else/endif = 条件分岐(変数定義) if(条件)/else/endif = 条件分岐(式[==,<,>,<=,>=,!=]の結果が真 の時直後のブロックを表示) loop/endloop = ループ block %モジュール名:ブロック名% ブロック include "ファイル名 = インクルード cmd_ = ユーザー定義コマンド 変数 %&name% = グローバル(ループ内でも有効) %name% = ローカル(ループ内外互換なし) ※コマンド、変数名は半角英数字と"_" ※blockについて テンプレートエンジンが行う事は、プリプロセッサで変数(モジュール名:ブロック 名)をキーにした空の配列を作成し、出力処理時に配列の各要素を該当する行に置 換するのみです。各ブロックの出力生成はプリプロセッサから出力までの間に外部 で行って下さい。 ※includeについて プリプロセッサで置換が行われるため、変数の置換等も元ファイルと同様に行われ ます。 インクルードするファイルに<body>タグが含まれる場合、実際にインクルー ドされるのは<body>タグの内側のみになります。 ※ユーザー定義コマンドについて cmd_(任意の文字列)が付いたコマンド行を読み込んだ時点で、以下の通り任意名前 のメソッドを実行します。 ・プリプロセッサ pre_cmd_(任意の文字列) ・出力処理時 cmd_(任意の文字列) 関数はテンプレートエンジンクラスを継承したクラスに実装して下さい。 プロパティは $this->_tmpldata --- テンプレート配列(1行1要素) $this->_pointer --- テンプレートのポインタ
<!-- tmpl:endcomment -->
<!-- tmpl:command -->
test1 = 1 test2 = 0
<!-- tmpl:endcommand -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja-JP"> <head> <base href="http://www.asobicreate.com/"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta name="description" content="神奈川県相模原市のWEBシステム制作、アソビ・クリエイトのオフィシャルWEBページ"> <meta name="keywords" content="PHP,MySQL,携帯サイト,WEBアプリケーション,WEBシステム,企画,制作会社,製作会社,開発会社"> <title>SEO対応WEBサイト制作、開発、製作/アソビ・クリエイト/神奈川県相模原市</title> </head> <body> <h1>ローカル変数</h1> index=%index%/index2=%index2%<br> test1=%test1%/test2=%test2%<br> <h1>フラグのテスト</h1>
<!-- tmpl:ifdef %&f_test1% -->
f_test1が立っている時<br>
<!-- tmpl:else -->
f_test1が寝ている時<br>
<!-- tmpl:endif -->
<!-- tmpl:ifundef %&f_test2% -->
f_test2が寝ている時<br>
<!-- tmpl:else -->
f_test2が立っている時<br>
<!-- tmpl:endif -->
<!-- tmpl:ifdef %&f_test1% -->
<!-- tmpl:ifundef %&f_test2% 条件分岐はネスト可 -->
f_test1が立っていてf_test2が寝ている時<br>
<!-- tmpl:else -->
f_test1が立っていてf_test2が立っている時<br>
<!-- tmpl:endif -->
<!-- tmpl:else -->
<!-- tmpl:ifundef %&f_test2% -->
f_test1が寝ていてf_test2が寝ている時<br>
<!-- tmpl:else -->
f_test1が寝ていてf_test2が立っている時<br>
<!-- tmpl:endif -->
<!-- tmpl:endif -->
<!-- tmpl:if %test1% == "1" -->
test1が1の時<br>
<!-- tmpl:else -->
test1が1以外の時<br>
<!-- tmpl:endif -->
<h1>ループのテスト</h1>
<!-- tmpl:loop %loop_1% -->
<h2>%index%</h2>
<!-- tmpl:loop %loop_2% ループはネスト可 -->
<h3>%index%-%index2%</h3>
<!-- tmpl:ifdef %&f_test1% -->
f_test1が立っている時<br>
<!-- tmpl:else -->
f_test1が寝ている時<br>
<!-- tmpl:endif -->
<!-- tmpl:ifundef %&f_test2% -->
f_test2が寝ている時<br>
<!-- tmpl:else -->
f_test2が立っている時<br>
<!-- tmpl:endif -->
<!-- tmpl:ifdef %&f_test1% -->
<!-- tmpl:ifundef %&f_test2% -->
f_test1が立っていてf_test2が寝ている時<br>
<!-- tmpl:else -->
f_test1が立っていてf_test2が立っている時<br>
<!-- tmpl:endif -->
<!-- tmpl:else -->
<!-- tmpl:ifundef %&f_test2% -->
f_test1が寝ていてf_test2が寝ている時<br>
<!-- tmpl:else -->
f_test1が寝ていてf_test2が立っている時<br>
<!-- tmpl:endif -->
<!-- tmpl:endif -->
<!-- tmpl:endloop -->
<!-- tmpl:endloop -->
</body> </html>