{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>
<!-- FireFox -->