Стандартные модификаторы Modx Revo и создание собственных модификаторов

май 3 , 2015
Метки:

Модификаторы в Modx - это очень удобная штука, которая позволяет выполнять какие-то преобразования с плэйсхолдерами, дополнительными полями, не вызывая неудобную конструкцию сниппета с параметром. В статье приведены несколько модификаторов Modx Revo и показано, как самим создать модификатор под свои нужды.

Итак, модификаторы. Страница в официальной документации Не буду переписывать документацию, там расписано очень подробно и хорошо. Пример вызова модификатора:

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

Можно применять модификаторы к результатам работы сниппетов. Например, посмотрим, равно ли у ресурса с id=10 значение дополнительного поля category_id 2 или 5, и в зависимости от этого выведем надпись yes или no. Будем использовать сниппет getResourceField

    [ [getResourceField:is=`2`:or:is=`5`:then=`yes`:else=`no`? &id=`10` &field=`category_id` &isTV=`1`] ]

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

Как создать собственный модификатор?


Очень просто. Нужно всего лишь создать сниппет с входным параметром $input и вернуть из него какой-то результат.
Создадим модификатор, возвращающий входную строку с "Hello, " в начале. Создадим сниппет с названием hello_user

    return 'Hello, '.$input.'!';

Применение модификатора выведет нам "Hello, admin!"

    [ [+modx.user.username:hello_user] ]

В большинстве случаев этого достаточно для создания своего модификатора. Более подробно расписано в официальной документации

Метки:
Заходите в группу в контакте - https://vk.com/webdevkin
Анонсы статей, обсуждения интернет-магазинов, vue, фронтенда, php, гита.
Истории из жизни айти и обсуждение кода.
Как Вам статья? Оцените!