Изменение хука в плагине

Можно ли изменить (переназначить) место вывода шаблона из плагина, изменив хук не в самом плагине, а в адаптации к скину?

12 комментариев

avatar
лично мне вопрос не понятен
  • PSNet
  • 0
avatar
Например, плагин выводит новый пункт меню в главное меню (nav-main), используя хук.
А нужно, чтобы выводил в подменю (nav-menu).
Все получается, если в плагине изменить хук.
Вопрос в том, можно ли это сделать не затрагивая сам плагин, а через адаптацию (/plugin_name/templates/skin_name)?
avatar
нет, т.к. хук привязывается в хуках, а в файлах шаблонов только его вывод.
avatar
Спасибо за ответ. Думаю, если была бы такая возможность, плагины могли быть более гибкими
avatar
думаю, вам следует пересмотреть логику, возможно есть решение с другой стороны.
avatar
ой, прочитал ответ как "… мои плагины могли быть..."

так не стоит делать т.к. нарушается логика и принцип mvc на котором построен лс
avatar
Да, конечно, можно делегировать шаблон.
Но при этом могут возникнуть проблемы несовместимости с др. плагинами и т.д.

В целом, получается что любой скин должен опираться на структуру хуков дефолтного шаблона (для совместимости с плагинами). Изменить хуки, или добавить свои не получится.

К примеру, я перенес в экшене profile меню из сайдбара в топ. Тут хуки имеют вид profile_sidebar_menu… В данном случае именование перенесенного хука не совсем логично (для дальнейшей разработки, работе команды и т.п.)
Переименовать в profile_top_menu… получается нельзя. Все плагины, использующие эти хуки будут работать некорректно.

Вот если бы можно было бы изменять хуки внутри адаптаций плагинов, то не было бы привязки к дефолтным хукам.
И скины можно было бы создавать не на основе дефолтного, а полностью индивидуальные
avatar
Следует помнить что адаптации как таковые являются исправлением смелой фантазии автора шаблона (ничего плохого в этом нет).

Если уж менять имена хуков, то нужно к шаблону тогда добавлять сопроводительный плагин, который будет цепляться на хуки нового шаблона, а внутри вызывать подписчиков старых, близлежащих хуков (которых нет в шаблоне).
avatar
А возможно ли сделать плагин «переопределения хуков» в плагинах? В настройках четыре поля: имя плагина, имя шаблона, «старый» хук, «новый» хук
avatar
нет, унаследовать модуль хука нельзя
avatar
Это может быть решением проблемы?
avatar
нет, это очень гибкий хук (куда хочешь — туда и вставляй). переопределить хук нельзя.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.