Перейти к основному содержимому
Обновлено: 

Фильтры (модификаторы) в 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...