Зависимости в модулях - как обрабатывать?

Здравствуйте.

Есть в конфигурации модуля такая вещь, как зависимости. В админке можно добавить целый список сниппетов или плагинов всписок зависимостей.
А как дальше эти зависимости обрабатывать, и на что они влияют — делают для модуля доступной конфигурацию плагина, или как-то запускают его, или что еще?

Допустим, у меня есть плагин с заполненной конфигурацией. Есть модуль, в который хотелось бы импортовать конфигурацию этого плагина.
(свою конфигурацию каждый из них видит в массиве $params). Это через зависимости делается? А если не через них, то тогда вообще на что влияют эти самые зависимости?

Какой-то абсолютно мутный для меня момент.

Спасибо, если кто-то разъяснит.

4 комментария

avatar
Общие параметры модуля попадают в параметры зависимых плагинов/сниппетов, чтобы задавать и править их в одном месте. Например в модуле переводов evoBabel задаются параметры для сниппета и плагина вроде «шаблон язык» или id tv relation, которые используются и там и там.
avatar
А «попадают в параметры» — это в массив $params, или еще куда-то заносятся?
А обратной связи нет — в модуле выдернуть параметры зависимого плагина?
avatar
Да, в теории они должны идти такими же параметрами, как и сами параметры плагина/сниппета. «Обратной связи» нет — чтобы получить в модуле параметры нужного плагина надо взять параметры данного плагина и распарсить их (метод $modx->parseProperties)

А тут смысл именно в том, что есть некое пакетное решение (модуль, сниппеты, плагины) и для всех этих элементов задаются единые «общие параметры» в модуле. Плюс для каждого сниппета, плагина могут быть свои дополнительные параметры, заданные в них.
avatar
На примере eFilter:
Есть модуль, в котором в конфиге имеется параметр product_templates_id (ID шаблонов товара).
Параметры у модуля общие, и в зависимостях указан среди прочего сниппет eFilter.
Открываем и видим в нём вызов класса, а там такой кусочек:

    $this->params = $params;
    $this->product_templates_id = $this->params['product_templates_id'];

Воть.
Т.е. в переменной $params у сниппета доступны все параметры модуля. В данном случае они просто засовываются в переменную класса.
  • 1px
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.