条件によって、ある部分は表示したくないなどの場合が出てくると思います。この場合はif,elseif,elseを使用すれば簡単に出来ます。
条件によって、ある部分は表示したくないなどの場合が出てくると思います。この場合はif,elseif,elseを使用すれば簡単に出来ます。
{if}文の構文は下記のようなものになります。下記の例は$_GET['lang']変数によって表示を切り替える場合のテンプレートです。
{if $smarty.get.lang=='jp'} こんにちは {elseif $smarty.get.lang=='ch'} <span lang="zh">尓好</span> {else} <span lang="en">Hello</span> {/if}
{if}文はphpのそれとほぼ同じと考えて良いでしょう。ただし、条件演算子にはphpには存在しない演算子もあります(例えばis div by
など)。詳しくはマニュアルを見てください。
また、{if}文の中ではphpの関数を使用することもできます。
{if empty($data) } データが無いよ {else} データがあるよ。 {/if}
$security変数がTUREの場合、{if}文の中で使うことができる関数は、$security_settings指定されたphp関数のみが利用可能となります。
下記のコードは、Smarty.class.phpに書かれている、デフォルトの$security_settingsの値です。$security変数をTUREにした場合は、'array', 'list', 'isset', 'empty', 'count', 'sizeof', 'in_array', 'is_array'関数が{if}文中で使用可能になります。
var $security_settings = array( 'PHP_HANDLING' => false, 'IF_FUNCS' => array('array', 'list', 'isset', 'empty', 'count', 'sizeof', 'in_array', 'is_array', 'true', 'false', 'null'), 'INCLUDE_ANY' => false, 'PHP_TAGS' => false, 'MODIFIER_FUNCS' => array('count'), 'ALLOW_CONSTANTS' => false );
それ以外の関数を使いたい場合は、$security_settings['IF_FUNCS']変数に関数を追加すれば使用可能になります。