[pdoTools] Версия 2.1 - улучшения Fenom
Привет друзья! Хочу представить вам новую версию pdoTools с улучшениями работы шаблонизатора Fenom.
С другой стороны, я не хочу придумывать очередной псевдоязык команд, типа
Читать далее, [pdoTools] Версия 2.1 - улучшения Fenom
Функциональность vs Безопасность
Я долго думал, как бы разрешить менеджерам запускать чанки и сниппеты, но при этом не пускать их к объектам MODX. Потому что, если включить системную настройку pdotools_fenom_modx, то любой менеджер сможет сделать в чанке вот так:{if $res = $modx->getObject('modResource', 1)}
$res->remove();
{/if}Нам бы этого не хотелось, правда?С другой стороны, я не хочу придумывать очередной псевдоязык команд, типа
{runSnippet('name', [params => data])}или{'name' [params => data] | snippet}Поэтому я добавил специальную переменную {$_modx}, которая ссылается на небольшой безопасный класс, где есть только нужные менеджерам функции и свойства:- {$_modx->placeholders} — массив с системными плейсхолдерами
- {$_modx->config} — массив с системными настройками
- {$_modx->context} — массив (не объект!) с текущим контекстом
- {$_modx->user} — массив (не объект!) с текущим пользователем
- {$_modx->resource} — массив (не объект!) с текущим ресурсом
- {$_modx->lexicon} — служба загрузки лексиконов
- {$_modx->lexicon()} — функция для вывода строки из лексикона
- {$_modx->runSnippet()} — запуск сниппета
- {$_modx->runProcessor()} — запуск процессора
- {$_modx->getChunk()} — вывод чанка
- и т.д., смотрите исходник.