{if},{elseif},{else}

{if} statements in Smarty have much the same flexibility as PHP if statements, with a few added features for the template engine. Every {if} must be paired with a matching {/if}. {else} and {elseif} are also permitted. All PHP conditionals and functions are recognized, such as ||, or, &&, and, is_array(), etc.

If $security is enabled, only PHP functions from the IF_FUNCS array from $security_settings are allowed.

The following is a list of recognized qualifiers, which must be separated from surrounding elements by spaces. Note that items listed in [brackets] are optional. PHP equivalents are shown where applicable.



Qualifier Alternates Syntax Example Meaning PHP Equivalent
== eq $a eq $b equals ==
!= ne, neq $a neq $b not equals !=
> gt $a gt $b greater than >
< lt $a lt $b less than <
>= gte, ge $a ge $b greater than or equal >=
===   $a === 0 check for identity ===
! not not $a negation (unary) !
% mod $a mod $b modulous %
is [not] div by   $a is not div by 4 divisible by $a % $b == 0
is [not] even   $a is not even [not] an even number (unary) $a % 2 == 0
is [not] even by   $a is not even by $b grouping level [not] even ($a / $b) % 2 == 0
is [not] odd   $a is not odd [not] an odd number (unary) $a % 2 != 0
is [not] odd by   $a is not odd by $b [not] an odd grouping ($a / $b) % 2 !=

Sample Usage:

{if $browser.name=="MSIE"}
<script type="text/javascript"
scr="{$relative_template_dir}../jquery.bgiframe.min.js">
</script>
{else}
<!-- FireFox -->
{/if}

HTML Source Output

if browser is Internet Explorer
<script type="text/javascript" 
src="../_templates/main/../jquery.bgiframe.min.js">
<script>
for other browsers. e.g. Safari, Firefox
	<!-- FireFox -->