just another thing
Чтобы добавить в параметры целый массив, достаточно указать ссылку на него. Это работает быстрее, чем полное копирование :
$data['lang'] =& $language;в шаблоне будем ссылаться так:
{$lang.Key}
{$lang.Another key}
Можно выводить поля объекта. Используем явное приведение типов:
$data['myobj'] = (array)$myobj;
Выводим номер строки (если тег <ol> не устраивает).
В контроллере добавляем свой модификатор:
function counter(&$counter)
{
if (is_null($counter)) $counter = 0;
return ++$counter;
}
В шаблоне:
<!-- .FOREACH lines AS line -->
<li>Line {$i|counter}: {@line}</div>
<!-- .END -->
Чтобы сделать "полосатый" список, добавим еще один модификатор:
В контроллере:
function even_odd($counter)
{
return ($counter % 2 == 0)? 'even' : 'odd';
}
В шаблоне:
<!-- .FOREACH lines AS line -->
<li class="{$i|counter|even_odd}">Line {$i}: {@line}</div>
<!-- .END -->
Конечно в таблице стилей надо описать классы even и odd.
Первую строку можно поймать так: пока counter не сработал в первый раз, счетчик не определен.
В шаблоне:
<!-- .FOREACH lines AS line -->
<li class="{.IFNOT i}first {.END}{$i|counter|even_odd}">Line {$i}: {@line}</div>
<!-- .END -->
В таблице стилей описать класс first. (Cм. пример Table2)
See also