Фильтры (модификаторы) в PROScript
Фильтры (или модификаторы) в PROScript используются для изменения значений строк — как переменных, так и просто текстовых данных. Это позволяет форматировать текст прямо в шаблоне: например, приводить его к верхнему или нижнему регистру, обрезать пробелы или заменять фрагменты.
upper
Переводит строку в верхний регистр. Полезно, если нужно выделить текст или привести его к единой форме.
[% "hello world" | upper %]
Результат:
HELLO WORLD
lower
Переводит строку в нижний регистр.
[% "Hello World" | lower %]
Результат:
hello world
ucfirst
Делает первую букву строки заглавной, остальные не изменяются.
[% "hello" | ucfirst %]
Результат:
Hello
lcfirst
Делает первую букву строки строчной.
[% "HELLO" | lcfirst %]
Результат:
hELLO
trim
Удаляет пробелы в начале и в конце строки.
[% " hello " | trim %]
Результат:
hello
repeat
Повторяет строку или значение переменной заданное количество раз.
[% "hello" | repeat(2) %]
Результат:
hellohello
replace
Заменяет все подходящие фрагменты на новое значение. Фильтр полезен для поиска и замены внутри строки. В фильтре можно использовать регулярные выражения.
[% "яблоко, груша, яблоко" | replace("яблоко", "банан") %]
Результат:
банан, груша, банан
remove
Удаляет все части строки, соответствующие заданному фрагменту. Похоже на replace
, но найденные участки удаляются, а не заменяются. В фильтре можно использовать регулярные выражения.
[% "кот, пёс, кот" | remove("кот") %]
Результат:
, пёс,
mark_raw
По умолчанию HTML-теги в PROSCript экранируются. Это значит, что если в переменной есть теги, система отобразит их в виде текста. Фильтр mark_raw
позволяет вывести в шаблон содержимое переменной, содержащую HTML-теги, без экранирования.
[% string = "<b>hello</b>" %]
[% string | mark_raw %]
uri
Преобразует строку в безопасный вид для вставки в URL. Это полезно, если в ссылку нужно добавить текст, например, для создания GET-запроса. Некоторые символы, такие как ?
, &
, "
, =
, /
и пробелы могут нарушить работу ссылки. Фильтр uri
заменяет эти символы на специальные коды, чтобы по ссылке можно было перейти.
[% path = 'http://tt2.org/example'
back = '/other?foo=bar&baz=bam'
title = 'Earth: "Mostly Harmless"'
%]
<a href="[% path %]?back=[% back | uri %]&title=[% title | uri %]">
Результат:
<a href="http://tt2.org/example?back=%2Fother%3Ffoo%3Dbar%26
baz%3Dbam&title=Earth%3A%20%22Mostly%20Harmless%22">link</a>
url
Похож на uri, н о менее строгий — сохраняет символы &
, @
, /
, ;
, :
, =
, +
, ?
и $
. Используется, если не требуется полное кодирование URL.
null
Не выводит ничего. Используйте, чтобы временно отключить переменную, но не удалять её из шаблона.
truncate
Обрезает строку до указанной длины и добавляет многоточие, если строка слишком длинная. Можно использовать при ограничении длины текста, например, в превью новостей.
[% string='0123456789' %]
[% string | truncate(6) %]
Результат:
012...