Главная » Статьи » Документация » Дизайн и шаблоны
Категории

Фильтры

Теперь мы знаем как выводить переменные, но переменные бывают разные и выводиться они тоже могут в разных местах. Зачастую необходимо эти переменные экранировать, точнее экранировать HTML сущности в них, чтобы пользователи увидели текст, как текст, а не как HTML код. Это кстати спасает от такой плохой штуки как XSS. И вот тут нам на помощь приходят фильтры. Использовать фильтры очень просто:
1
2
3
4
<!-- Переводим HTML в простой текст в заголовке(используем фильтр escape) -->
<title>{{ title|escape }}</title>
<!-- Пример фильтра с параметром -->
<title>{{ title|match('#regexp#') }}</title>
Как видите, все предельно просто.

Доступные фильтры

версия >= 2.6 rc1

bbcode - парсинг бб-кодов в строке.
escape - аналог htmlspecialchars в PHP(преобразование HTML сущностей).
lang - перевод.
Начиная с версии 2.7.0 принимает один параметр(string) - контекст(lang('shop')).
urldecode - URL декодирование строки.
urlencode - URL кодирование строки.

версия >= 2.6 rc2

match('#regexp#') - проверка строки регуляркой.
pop - получить последний элемент массива.
shift - получить первый элемент массива.
show - аналог print_r в PHP(удобочитаемый вывод переменной, даже массива и объекта).
length - получить длину строки.
count - подсчет количества элементов в массиве.
format(param1[, param2[, params3 ...]]) - аналог sprintf в PHP.
join([param1]) - аналог implode в PHP.
batch(param1, param2) - разбивает исходный массив на подмассивы длиной param1. Недостающие ключи заполняются param2.
1
2
{{ [1,2,3,4]|batch(3, 'No item') }}
{# array(0 => array(1,2,3), 1 => array(4, 'No item', 'No item')) #}
capitalize - делает первый символ строки заглавным.
keys - возвращает ключи массива.
default(param) - если фильтруемая переменная пуста или не существует, подставляется значение param.
reverse - инвертирует порядок элементов массива.
replace - заменяет подстроки внутри строки.
1
2
{{ 'test1 test2 test3'|replace({'test1': 'test11', 'test3': 'test33'}) }}
{# test11 test2 test33 #}
slice(offset[, length]) - возвращает срез массива.
1
2
3
4
{{ ['test1', 'test2', 'test3']|slice(1) }}
{# array('test2', 'test3') #}
{{ ['test1', 'test2', 'test3']|slice(1, 1) }}
{# array('test2') #}
split(delimiter[, limit]) - разбивает строку по delimiter и возвращает массив. limit - максимальное кол-во элементов в возвращаемом массиве.
1
2
3
4
{{ 'test1,test2,test3'|split(',') }}
{# array('test1', 'test2', 'test3') #}
{{ 'test1,test2,test3'|split(',', 2) }}
{# array('test1', 'test2,test3') #}
trim([symbols]) - Удаляет пробельные символы из начала и конца строки. Если указан параметр symbols, удаляются символы, которые указаны в этом параметре.
json_encode - преобразует массив в JSON.

версия >= 2.7.0

append - добавляет элемент в конец массива.
substr(int[, int]) - обрезает строку(аналог substr в PHP).
num_format - аналог number_format в PHP..
typeof - возвращает тип переменной([string|array|object|integer|resource|boolean]).
Дизайн и шаблоны Просмотров: 4110 Комментариев: 0