このマニュアルはSmartyのものです。セキュリティなどの問題でRCMSでは利用できないものもありますので、ご注意ください。
カスタム関数第 8章カスタム関数
Smarty は、テンプレートで使用可能なカスタム関数をいくつか実装しています。
{assign}
{assign} は、テンプレート変数を
テンプレートの実行時に
割り当てます。
例 8-1. {assign} {assign var='name' value='Bob'}
The value of $name is {$name}. |
上の例の出力
The value of $name is Bob. |
|
例 8-2. {assign} での演算子の使用 この複雑な例では、変数を `バッククォート` で囲む必要があります。 {assign var=running_total value=`$running_total+$some_array[row].some_value`} |
|
例 8-3. PHP スクリプトからの {assign} 変数へのアクセス
PHP スクリプトから {assign} 変数にアクセスするには
get_template_vars()
を使用します。これは、変数 $foo
を作成するテンプレートです。
{assign var='foo' value='Smarty'} |
テンプレート変数は、以下のスクリプトのように
テンプレートの実行後か実行中にしか利用できません。
<?php
// これは何も出力しません。テンプレートがまだ実行されていないからです。 echo $smarty->get_template_vars('foo');
// テンプレートを変数に格納します。 $whole_page = $smarty->fetch('index.tpl');
// これは 'smarty' と出力します。テンプレートが実行されたからです。 echo $smarty->get_template_vars('foo');
$smarty->assign('foo','Even smarter');
// これは 'Even smarter' を出力します。 echo $smarty->get_template_vars('foo');
?>
|
|
次の関数も、オプションで
テンプレート変数へ割り当てることができます。
{capture}、
{include}、
{include_php}、
{insert}、
{counter}、
{cycle}、
{eval}、
{fetch}、
{math}、
{textformat}
assign()
および
get_template_vars()
も参照してください。