 
Smarty-шаблоны
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]} упоминается {$odat[$i]} раз.
{/foreach}
Обратите внимание на то, что ассоциативные массивы в Smarty записываются нестандартным образом (не как $dat['edit'], а как $dat.edit).
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>
|