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]] с четырьмя восклицательными знаками.

Подсказка

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