Модификаторы (фильтра php) в MODx revo

Фильтры модификаторы phx позволяют манипулировать значением тегов, непосредственно внутри шаблона. Все довольно просто, модификаторы phx значительно облегчают жизнь разработчику сайта. Например есть сайт и необходимо только на главной странице показывать слайдер, ну или любой другой банер. Вот несколько пример фильтров php:


[[*id:is=`1`:then=`[[$slider]]`]]
[[+placeholder:default=`К сожалению, ничего не найдено`]]
[[+something:notempty=`Hello[[+name]]`]]

Модификаторы вывода

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

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

 

Модификатор Описание Пример
if,input if - задает дополнительное условие
input - добавляет в тег обратываемые данные
[[+phx:input=`img/23.gif`]]
 - добавляем в тег phx входное значение, следующим модификатором, например, можно обработать изображение.
[[*id:is=`1`:and:if=`[[*id]]`:ne=`2`:then=`da`:else=`net`]]
 - если id-ресурса = 1 и не равно 2, выводим "da", или же "net"
or,and or - условие "ИЛИ"
and - условие "И"
[[*id:is=`1`:or:if=`[[*id]]`:is=`2`:then=`da`:else=`net`]]
 - если id-ресурса = 1 или = 2, выводим "da", или же "net"
isequalto, isequal, equalto, equals, is, eq Если тег равен модификатору, используется с "then" и "else."
[[*id:is=`1`:then=`da`:else=`net`]]
 - если id-ресурса = 1, выводим "da", или же "net"
notequalto, notequals, isnt, isnot, neq, ne Если тег не равен модификатору, используется с "then" и "else".
[[*id:ne=`1`:then=`da`:else=`net`]]
 - если id-ресурса не равно 1, выводим "da", или же "net"
greaterthanorequalto, equalorgreaterthen, ge, eg, isgte, gte Если тег больше или равен модификатору, используется с "then" и "else".
[[*id:ge=`1`:then=`da`:else=`net`]]
 - если id-ресурса больше или равен 1, выводим "da", или же "net"
isgreaterthan, greaterthan, isgt, gt Если тег больше модификатора, используется с "then" и "else".
[[*id:gt=`1`:then=`da`:else=`net`]]
 - если id-ресурса больше 1, выводим "da", или же "net"
equaltoorlessthan, lessthanorequalto, el, le, islte, lte Если тег меньше или равен модификатору, используется с "then" и "else".
[[*id:el=`10`:then=`da`:else=`net`]]
 - если id-ресурса меньше или равно 10, выводим "da", или же "net"
islowerthan, islessthan, lowerthan, lessthan, islt, lt Если тег меньше модификатора, используется с "then" и "else".
[[*id:lt=`10`:then=`da`:else=`net`]]
 - если id-ресурса меньше 10, выводим "da", или же "net"
hide Если предыдущий модификатор возвращает положительное значение ("then"), то не выводим обработанный тег.
[[*id:is=`10`:hide]]
 - если id-ресурса = 10, ничего не выводим
show Если предыдущий модификатор возвращает положительное значение ("then"), то выводим обработанный тег.
[[*id:is=`10`:show]]
 - если id-ресурса = 10, выводим.
then Условие, если тег соответствует модификатору, выводим сообщение, иначе ничего не выводим
[[*id:is=`10`:then=`один`]]
 - если id-ресурса = 10, выводим "один".
else Условие, если тег не соответствует модификатору, выводим сообщение. Используется только в связке с "then"
[[*id:is=`10`:then=`один`:else=`два`]]
 - если id-ресурса = 10, выводим "один" иначе "два".

 

Модификаторы для работы со строками

 

Модификатор Описание Пример
cat Добавляет к тегу строку.
[[+num:cat=` раз`]]
, выведет к примеру "10 раз".
lcase, lowercase, strtolower Переведет значение тега в нижний регистр, аналогично функции php strtolower.
[[*pagetitle:lcase]]
ucase, uppercase, strtoupper Переведет текст в верхний регистр, аналогично функции php strtoupper.
[[*pagetitle:ucase]]
ucwords Переведет каждую первую букву, каждого слова в верхний регистр, аналогично функции php ucwords.
[[*pagetitle:ucwords]]
ucfirst Переведет только первую букву строки в верхний регистр, аналогично функции php ucfirst.
[[*pagetitle:ucfirst]]
htmlent, htmlentities Преобразует все символы в соответствющие HTML сущности (для тех символов, для которых HTML сущности существуют), аналогично функции php htmlentities. Использует текущие настройки системы "modx_charset" с флагом "ENT_QUOTES".
[[*pagetitle:htmlentities]]
esc,escape Экранирует разные "плохие символы", так же экранирует [] и `.
[[*content:esc]]
strip Заменяет все переносы строк, табуляции и множественные пробелы с на один пробел.
[[*content:strip]]
stripString Вырезает из строки заданную строку.
[[*pagetitle:stripString=`проблема`]]
replace Обычная замена.
[[*pagetitle:replace=`конфета==конфетка`]]
striptags, stripTags,notags,strip_tags Вырезает все теги, кроме разрешенных, аналогично функции php strip_tags
[[*longtitle:strip_tags=``]]
len,length, strlen Возвращает длину строки, аналогично функции php strlen
[[*longtitle:strlen]]
reverse, strrev Переворачивает строку, аналогично функции php strrev
[[*longtitle:reverse]]
wordwrap Устанавливает переносы в зависимости от кол-ва символов слова, аналогично функции php wordwrap
[[*pagetitle:wordwrap=`10`]]
limit Устанавливает лимит на длинну строки и обрезает ее.
[[*pagetitle:limit=`10`]]
ellipsis Устанавливает лимит на длинну строки и обрезает ее, добавляя три точки в конце
[[*pagetitle:ellipsis=`10`]]
tag Вернет, запись тега.
[[*pagetitle:ellipsis=`10`:tag]]
вернет:
[[*pagetitle:ellipsis=`10`:tag]]
add, increment, incr Вернет, значение + модификатор ( по умолчанию +1 ).
[[+num:incr]]
 или 
[[+num:add=`97`]]
subtract, decrement, decr Вернет, значение - модификатор ( по умолчанию -1 ).
[[+num:decr]]
или 
[[+num:decr=`97`]]
multiply, mpy Вернет, значение * модификатор ( по умолчанию *2 ).
[[+num:mpy]]
или 
[[+num:mpy=`5`]]
divide, div Вернет, значение / модификатор ( по умолчанию /2 ).
[[+num:div]]
 или 
[[+num:div=`5`]]
modulus, mod Вернет, значение % модификатор ( по умолчанию %2 ). Вернет 1 или 0.
[[+num:mod]]
или 
[[+num:mod=`5`]]
ifempty, default, empty, isempty Вернет, указанный модификатор, если значение пусто.
[[*pagetitle:empty=`Пусто`]]
notempty, !empty, ifnotempty, isnotempty Вернет, указанный модификатор, если значение не пусто.
[[*pagetitle:!empty=`Не пусто!`]]
nl2br Вернет строку с "<br />" или "<br>" вставленные перед всеми (\r\n, \n\r, \n и \r)..., аналогично функции php nl2br
[[*pagetitle:nl2br]]
[[*pagetitle:nl2br]]
date Аналогично функции PHP strftime. Значение - отформатировано. См. форматы дат.
[[+birthyear:date=`%Y`]]
strtotime Аналогично функции PHP strtotime. Вернет дату. См. форматы дат.
[[*createdon:strtotime]]
, - вернет типа "
[[*createdon:strtotime]]
"
fuzzydate Вернет дату. Типа вчера, сегодня....
[[*createdon:fuzzydate]]
, - вернет типа "
[[*createdon:fuzzydate]]
"
ago Вернет дату в прошедших секундах, минутах, неделях или месяцах.
[[*createdon:ago]]
, - вернет типа "
[[*createdon:ago]]
"
md5 Аналогично функции php md5.
[[+password:md5]]
.
cdata Вставляет строку в оболочку "CDATA" тегов.
[[*pagetitle:cdata]]
.
userinfo Возвращает запрошенные модификаторов данные о пользователе. Значение должно быть id-пользователя ( modUser ).
[[+modx.user.id:userinfo=`username`]]
.
isloggedin Возвращает true, если пользователь авторизирован в этом контексте.
[[+modx.user.id:isloggedin]]
.
isnotloggedin Возвращает true, если пользователь не авторизирован в этом контексте.
[[+modx.user.id:isnotloggedin]]
.
urlencode Аналогично функции php urlencode.
[[+stringi:urlencode]]
.
urldecode Аналогично функции php urldecode.
[[+stringi:urldecode]]
.

 

Модификатор UserInfo

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


Внутренний ключ пользователя: [[!+modx.user.id:userinfo=`internalKey`]]
Логин: [[!+modx.user.id:userinfo=`username`]]
Полное имя: [[!+modx.user.id:userinfo=`fullname`]]
Роль:  [[!+modx.user.id:userinfo=`role`]]
E-mail: [[!+modx.user.id:userinfo=`email`]]
Телефон: [[!+modx.user.id:userinfo=`phone`]]
Мобильный телефон: [[!+modx.user.id:userinfo=`mobilephone`]]
Факс: [[!+modx.user.id:userinfo=`fax`]]
Дата рождения: [[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]]
Пол: [[!+modx.user.id:userinfo=`gender`]]
Страна: [[+modx.user.id:userinfo=`country`]]
Область: [[+modx.user.id:userinfo=`state`]]
Почтовый индекс: [[+modx.user.id:userinfo=`zip`]]
Фото: [[+modx.user.id:userinfo=`photo`]]
Комментарий: [[+modx.user.id:userinfo=`comment`]]
Пароль: [[+modx.user.id:userinfo=`password`]]
Кеш пароля: [[+modx.user.id:userinfo=`cachepwd`]]
Последняя авторизация: [[+modx.user.id:userinfo=`lastlogin`:date=`%Y-%m-%d`]]
Дата текущей авторизации:[[+modx.user.id:userinfo=`thislogin`:date=`%Y-%m-%d`]]
Количество авторизаций: [[+modx.user.id:userinfo=`logincount`]]

 

Комментарии ()
    Ваш email не будет опубликован. Обязательные поля отмечени символом *