Фильтры в революции позволяют управлять способом представления данных. Они позволяют изменять значения внутри шаблонов.

В революции выходной фильтр применяется один или более раз из серии выходных модификаторов, которые ведут себя подобно PHx вызывам в MODx Evolution - за исключением, что они встроены в ядро. Синтаксис выглядит следующим образом:

[ [element:modifier=`value`] ]

Они также могут быть соединены (выполняется слева направо):

[ [element:modifier:anothermodifier=`value`:andanothermodifier:yetanother=`value2`] ]

Вы также можете использовать их, чтобы изменить выход сниппета; внимание, модификатор идет  после имени сниппета и перед вопросительным знаком, например,

[ [mySnippet:modifier=`value`? &mySnippetParam=`something`] ]

В следующей таблице перечислены некоторые из существующих модификаторов и приведены примеры их использования. Хотя приведенные ниже примеры являются для некоторых тегов, выходные модификаторы могут быть использованы с любым тегом MODx. Убедитесь, что модификатор получает данные.

Условные модификаторы:

Модификатор

Описание

Пример

if, input

   

or

Логическое ИЛИ

[ [+numbooks:is=`5`:or:is=`6`:then=`There are 5 or 6 books!`:else=`Not sure how many books`] ]

and

Логическое И

 

isequalto, isequal, equalto, equals, is, eq

Равно  

[ [+numbooks:isequalto=`5`:then=`There are 5 books!`:else=`Not sure how many books`] ]

notequalto, notequals, isnt, isnot, neq, ne

Не равно

[ [+numbooks:notequalto=`5`:then=`Not sure how many books`:else=`There are 5 books!`] ]

greaterthanorequalto, equalorgreaterthen, ge, eg, isgte, gte

Больше или равно

[ [+numbooks:gte=`5`:then=`There are 5 books or more than 5 books`:else=`There are less than 5 books`] ]

isgreaterthan, greaterthan, isgt, gt

Больше

[ [+numbooks:gt=`5`:then=`There are more than 5 books`:else=`There are less than 5 books`] ]

equaltoorlessthan, lessthanorequalto, el, le, islte, lte

Меньше или равно

[ [+numbooks:lte=`5`:then=`There are 5 or less than 5 books`:else=`There are more than 5 books`] ]

islowerthan, islessthan, lowerthan, lessthan, islt, lt

Меньше

[ [+numbooks:lt=`5`:then=`There are less than 5 books`:else=`There are more than 5 books`] ]

hide

Скрытие

[ [+numbooks:lt=`1`:hide] ]

show

Показ

[ [+numbooks:gt=`0`:show] ]

then

Тогда

[ [+numbooks:gt=`0`:then=`Now available!`] ]

else

Или

[ [+numbooks:gt=`0`:then=`Now available!`:else=`Sorry, currently sold out.`] ]

select

   

memberof, ismember, mo

Член

[ [+modx.user.id:memberof=`Administrator`] ]

Строковые модификаторы:

Модификатор

Описание

Пример

cat

Если не пусто

[ [+numbooks:cat=` books`] ]

lcase, lowercase, strtolower

Транформация в малые буквы

[ [+title:lcase] ]

ucase, uppercase, strtoupper

Трансформация в большие буквы

[ [+headline:ucase] ]

ucwords

Первая буква слова заглавная

[ [+title:ucwords] ]

ucfirst

Первая буква заглавная

[ [+name:ucfirst] ]

htmlent, htmlentities

Замена тегов HTML

[ [+email:htmlent] ]

esc,escape

Безопасно убирает символы

[ [+email:escape] ]

strip

Замена перевода каретки, табуляции и множества пробелов на один пробел

[ [+textdocument:strip] ]

stripString

Удаляет значение из строки

[ [+name:stripString=`Mr.`] ]

replace

Замена значения

[ [+pagetitle:replace=`Mr.==Mrs.`] ]

striptags, stripTags,notags,strip_tags

Убирает HTML теги

[ [+code:strip_tags=`</p> <p>`] ]

len,length, strlen

Длина строки

[ [+longstring:strlen] ]

reverse, strrev

Реверс строки

[ [+mirrortext:reverse] ]

wordwrap

Новая строка после указанного количества символов

[ [+bodytext:wordwrap=`80`] ]

wordwrapcut

Вставляет символ новой строки после определенного количества символов.

[ [+bodytext:wordwrapcut=`80`] ]

limit

Выводимое кол-во символов

[ [+description:limit=`50`] ]

ellipsis

Обрезание строки после указанного кол-ва символов

[ [+description:ellipsis=`50`] ]

tag

Отображает сырой элемент без: тега. Полезно для документации.

[ [+showThis:tag] ]

Если значение может изменяться динамически, то его следует сделать некэшированным. Например:

[ [+placeholder:default=`A default value!`] ]

Это означает, что значение может иногда быть пустым, а иногда нет. Зачем его хранить в кэше? Это может исключить то, что значение может появиться.

Если вы не уверены будет ли результат при выполнении сниппета, то логично сделать значение по умолчанию:

[ [!getResources:default=`Sorry - nothing matched your search.`?
   &tplFirst=`blogTpl`
   &parents=`2,3,4,8`
   &tvFilters=`blog_tags==%%`
   &includeTVs=`1`] ]