Например, плагин выводит новый пункт меню в главное меню (nav-main), используя хук.
А нужно, чтобы выводил в подменю (nav-menu).
Все получается, если в плагине изменить хук.
Вопрос в том, можно ли это сделать не затрагивая сам плагин, а через адаптацию (/plugin_name/templates/skin_name)?
Да, конечно, можно делегировать шаблон.
Но при этом могут возникнуть проблемы несовместимости с др. плагинами и т.д.
В целом, получается что любой скин должен опираться на структуру хуков дефолтного шаблона (для совместимости с плагинами). Изменить хуки, или добавить свои не получится.
К примеру, я перенес в экшене profile меню из сайдбара в топ. Тут хуки имеют вид profile_sidebar_menu… В данном случае именование перенесенного хука не совсем логично (для дальнейшей разработки, работе команды и т.п.)
Переименовать в profile_top_menu… получается нельзя. Все плагины, использующие эти хуки будут работать некорректно.
Вот если бы можно было бы изменять хуки внутри адаптаций плагинов, то не было бы привязки к дефолтным хукам.
И скины можно было бы создавать не на основе дефолтного, а полностью индивидуальные
Следует помнить что адаптации как таковые являются исправлением смелой фантазии автора шаблона (ничего плохого в этом нет).
Если уж менять имена хуков, то нужно к шаблону тогда добавлять сопроводительный плагин, который будет цепляться на хуки нового шаблона, а внутри вызывать подписчиков старых, близлежащих хуков (которых нет в шаблоне).
12 комментариев
А нужно, чтобы выводил в подменю (nav-menu).
Все получается, если в плагине изменить хук.
Вопрос в том, можно ли это сделать не затрагивая сам плагин, а через адаптацию (/plugin_name/templates/skin_name)?
так не стоит делать т.к. нарушается логика и принцип mvc на котором построен лс
Но при этом могут возникнуть проблемы несовместимости с др. плагинами и т.д.
В целом, получается что любой скин должен опираться на структуру хуков дефолтного шаблона (для совместимости с плагинами). Изменить хуки, или добавить свои не получится.
К примеру, я перенес в экшене profile меню из сайдбара в топ. Тут хуки имеют вид profile_sidebar_menu… В данном случае именование перенесенного хука не совсем логично (для дальнейшей разработки, работе команды и т.п.)
Переименовать в profile_top_menu… получается нельзя. Все плагины, использующие эти хуки будут работать некорректно.
Вот если бы можно было бы изменять хуки внутри адаптаций плагинов, то не было бы привязки к дефолтным хукам.
И скины можно было бы создавать не на основе дефолтного, а полностью индивидуальные
Если уж менять имена хуков, то нужно к шаблону тогда добавлять сопроводительный плагин, который будет цепляться на хуки нового шаблона, а внутри вызывать подписчиков старых, близлежащих хуков (которых нет в шаблоне).