Smartyテンプレート内でPHPスクリプトを書くときに

2009/03/16 | Smarty

すでにテンプレート内でロジックを書くということ自体がいけないのだが、それでもどうしてもやらなければいけないときがある(というかそのほうがソースがきれいになる)。

Smartyは専用タグを使うPHPのテンプレートエンジンだけど、テンプレートの中にPHPプログラムを直接書くこともできる(書かないでいいものなら書かないほうがいい)。例えばこんなふうに。

{php}
print(‘This is PHP script’);
{/php} 

そもそもこういうふうな処理をかかなければならないわけだから、何らかの変数処理というのも必要になるわけだし、変数だってテンプレートにSmarty変数として使用していたものを使いたくなるのも人情だ。そんな場合は、こういう具合に書く。

$smarty->assign(‘myText’,’This is PHP script’);

{php}
print($this->get_template_vars(‘myText’);
{/php} 

プログラム本体内でmyTextという名前でアサインされた変数を、テンプレート内のPHPスクリプトから呼び出す例だ。ミソは「get_template_vars」メソッド。Smarty関数を書くときにも時々使ったりする。これを使って呼び出せばいい。

でも、やらなくてすむのなら、やらないほうがいい。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net