Skip to content
  1. Система
  2. Основы
  3. Модификаторы вывода
  4. Создание пользовательского модификатора

Создание пользовательского модификатора

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

modx
[[*pagetitle:makeExciting=`4`]]

Такой вызов тега передаст в сниппет makeExciting следующие параметры для обработки:

ПараметрЗначениеЗначение в примереКомментарий
inputЗначение элемента$input = `[[*pagetitle]]`;Значение элемента, к которому применяется модификатор.
optionsЗначение модификатора$options = `4`;Дополнительные параметры (после знака =)
tokenТип элемента$token = `*`;Символ, определяющий тип тега.
nameИмя элемента$name = `pagetitle`;Имя плейсхолдера, к которому применяется модификатор.
tagВесь тег полностью$tag = `[[*pagetitle:makeExciting=`4`]]`;Весь тег, полностью.

Приведем пример кода нашего сниппета makeExciting:

php
<?php
$defaultExcitementLevel = 1;
$result = $input;

if (isset($options)) {
  $numberOfExclamations = $options;
}
else {
  $numberOfExclamations = $defaultExcitementLevel;
}

for ($i = $numberOfExclamations; $i > 0; $i--) {
  $result = $result . '!';
}

return $result;

Тег выводит всё, что возвращает сниппет. В нашем случае он вернет значение тега [[*pagetitle]] с четырьмя восклицательными знаками.

Подсказка

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