mmaurice/evo-widgets

Web-site widgets from Modx Evolution 1.x chunks&snippets

0.1 2023-12-21 12:35 UTC

This package is auto-updated.

Last update: 2024-04-21 13:34:00 UTC


README

Инструмент позволяет вызвать любой чанк или сниппет Modx Evolution в виде кода для iFrame. При этом можно ограничить возможность вывода белым или черным списком сущностей.

Установка:

Клонирование проекта:

composer create-project mmaurice/evo-widgets ./widgets

Перейти в каталог проекта:

cd ./widgets

Обновить зависимости composer:

composer update

Создать файл конфигурации:

copy ./config.php.example ./config.php

Настройка:

Все настройки хранятся в файле config.php. Файл конфигурации содержит следующие узлы:

  • filter - применяемый метод фильтрации. Поддерживаемые значения: blacklist|whitelist|none. В случае выбора метода фильтрации blacklist, разрешено использовать все чанки и сниппеты, которые не перечисленны в blacklist. В случае выбора метода фильтрации whitelist, запрещено использовать все чанки и сниппеты, которые не перечисленны в whitelist.

  • blacklist - массив имен чанков и сниппетов, которые запрещено использовать.

  • whitelist - массив имен чанков и сниппетов, которые разрешено использовать.

Примечание: Для узлов blacklist и whitelist требуется указывать имя сущности с указанием её типа по маске:

'<type>:<name>'

Где,

  • - тип сущности. Допустимо использовать: chunk|snippet.
  • - имя сущности.

Это необходимо для исключения неоднозначности, если в системе будут зарегестрированы чанк и сниппет с одинаковым наименованием.

Использование:

Использовать модуль крайне легко. Необходимо обратиться к файлу index.php в адресной строке браузера, передав минимум один главный параметр в GET-запросе: name, где необходимо указать имя вызываемой сущности в формате, описанном выше:

'<type>:<name>'

Таким образом, ссылка в адресной строке может выглядеть так:

http://website/widgets/index.php?name=chunk:demo

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

http://website/widgets/index.php?name=snippet:demo&foo=bar

Это будет эквивалентно вызову:

{{demo ? &foo=`bar`}}