Smarty - это язык шаблонов для PHP. Написанный на PHP, он является практически отдельным языком программирования. Полную информацию по Smarty можно получить на официальном сайте www.smarty.net. Переменные, а также другие конструкции Smarty, вставляются в html-код шаблона с помощью фигурных скобок:
<td>{$dat[1]}</td>
По структуре код, написанный на Smarty, напоминает альтернативный синтаксис php-кода, отличие – в том, что переменные и конструкции вставляются в html-код теперь не с помощью php-тегов, а с помощью фигурных скобок.
Рассмотрим несколько простых конструкций Smarty. Прежде всего - это цикл foreach, который мы применяем для перебора записей многозаписного блока. Приведем его расширенный вариант - цикл с ключем.
foreach
{foreach from=$tab key=i item=dat} {$dat.edit} Фамилия {$dat[1]} упоминается {$tdat[$i]} раз. {/foreach}
assign (присваивание значения)
Оператор присваивания выглядит несколько громоздким, по сравнению с PHP. С помощью этого оператора можно производить также несложные арифметические вычисления.
{assign var="aa" value=10} {assign var="bb" value=$aa+5} {$bb} {* Данный пример выведет: 15 *}
if...else
{if $dat.edit} вы можете редактировать этот блок {else} вы не можете редактировать этот блок {/if}
Пример (полосатая таблица)
Это пример, в котором используются все три конструкции. Здесь цвет строк таблицы чередуется между белым (по умолчанию) и серым (#dddddd):
{assign var='toggle' value=1} <table> {foreach from=$tab item=dat} {* Если переменная $toggle положительна, то - серый фон *} <tr{if $toggle>0} bgcolor="#dddddd"{/if}> <td>{$dat.edit}</td> <td>{$dat[1]}</td> <td>{$dat[2]}</td> </tr> {* Изменить знак переменной $toggle на противоположный *} {assign var='toggle' value=$toggle*-1} {/foreach} </table>