Пишем на коленке элементарный сниппет [[Hello world]] для MODX Evolution

Когда я только познакомился с MODX у меня было очень много вопросов, и как любой новичок я делал огромное количество ошибок. В особенности я совсем не понимал как следует писать сниппеты.

[[Hello world]] на MODX Evo, или как написать свой первый сниппет

Практически любую задачу, по работе с контентом, в MODX Evo можно решить из коробки хотя бы двумя способами, при этом не прибегая к кастомной писанине. Однако иногда написать элементарный код всё таки требуется.

Сниппет – это часть PHP-кода, которая позволяет расширять функциональность вашего сайта.

  • Сниппет обязан возвращать результат совей работы.
  • Сниппет может генерировать собственное содержимое.
  • Результат работы сниппета может быть оформлен с помощью чанка.
  • Результат работы сниппета может быть использован в виде аргумента для свойства другого сниппета.

 

Исходя из вышеперечисленного сниппет [[Hello world]] может выглядеть так:

<?php
/* [[Hello world? &tpl=`html-inline||chunk||empty` &out=`Hello world`]] */

/* В этой секции мы проверяем установлены ли основные свойства и можем задать их значения "по умолчанию" */
$tpl = (isset($tpl)) ? $tpl : null;
$out = (isset($out)) ? $out : null;

if (isset($tpl)) { /* Если установлен шаблон для вывода */
if ($modx->getChunk($tpl)) { /* проверяем является ли шаблон чанком */
$out = str_replace("[+out+]", $out, $modx->getChunk($tpl)); /* обычно плейсхолдеры в шаблонах соответвуют названию свойств */
} else {
$out = str_replace("[+out+]", $out, $tpl);
}
}
return $out;

Резульатат работы сниппета [[Hello world? &tpl=`<strong class="test-snippet-out">[+out+]</strong>` &out=`Hello world`]]:

Hello world
×
Предложите тему или интересную задачу для следующей статьи:
×

Ждем входящих данных...