Фильтры - предназначены для модифицирования значения переменной или строки при выводе в шаблон при помощи выражений.
Фильтры отделяются от остальной части выражения вертикальным разделителем. Несколько фильтров в выражении разделяются также вертикальным разделителем:
{$UserName|trim|capitalize}
В данном примере, фильтр trim сначала убирает пробелы с конца и сначала строки (значения переменной UserName
), а затем capitalize переводит первую букву строки в верхний регистр.
В откомпилированном шаблоне это будет выглядеть как:
<?php echo ucfirst(trim($UserName)); ?>
К фильтрам могут применяться дополнительные параметры. Параметры начинаются после знака двоеточия, сами параметры отделяются друг от друга запятыми:
{$UserName|default:"anonymous"} {$value|number:2, '. ', ' '}
В первом случае, фильтр выведет значение “anonymous”, если переменная UserName
не будет определена в контейнере данных при исполнении шаблона.
В качестве параметров также допускается использование переменных:
<? $size = 10; ?> <pre>{$PlainText|wordwrap:$size}</pre>
Чаще всего в виде фильтров реализуются php-функции, такие как trim, strtoupper и т.д. MACRO содержит достаточно большой список фильтров.
Основные фильтры расположены в пакете macro. Однако у других пакетов тоже могут быть свои фильтры. Для того, чтобы их использовать, перед названием фильтра ставится префикс пакета.
Например есть стандартный фильтр clip
, который расположен в пакете macro. Однако и в другом пакете — i18n, есть фильтр с таким же названием. Соответственно используются они так:
{$str|clip:2} {$str|i18n_clip:2}
Обсуждение