У меня такая ситуация, что два разных плагина расширяют функциональность одного и того же метода экшна ActionAdmin. В одном плагине переопределяется шаблон contenttypes_fieldadd.tpl и сам экшн, а в другом только экшн.
Проблема в том, что когда я прописываю в делегатах одного плагина экшн ActionAdmin, то переопределённый шаблон из второго плагина перестаёт переопределяться (наверное и методы тоже) без всяких уведомлений о конфликтах. Как это можно обойти (всё-таки расширить экшн)? Я так понимаю, что в обычной ситуации, плагин, переопределяющий уже переопределённые методы, не активировался бы. Но в моем случае оба плагина уже активны. Может, добавить проверку и выводить сообщение в плагине для разработчиков? Это бы пригодилось во время разработки
августа
24
2015
0
Переопределение экшна в плагинах и поиск шаблона
Похожие статьи
-
[dev] Переопределение сортировки топиков
Статья предназначена для разработчиков плагинов и рассказывает о некоторых новых возможностях, появившихся в версии 1.1. Если быть более точным, то коммит с изменениями был залит в текущую ветку менее суток назад. Но ...
-
Alto CMS v.1.1: некторые «плюшки» для разработчиков
Это статья для разработчиков. Поэтому буду краток: 1) Возможность установки плагинов в поддиректории 2) Человекопонятный синтаксис вызов методов модулей 3) Плагин для разработчиков
-
Работа с css- и js-файлами - дополнительные возможности для разработчиков шаблонов и плагинов
В продолжении к статье Файлы js и css, а также прочие asset'ы – тонкости и нюансы работы с ними в Альто хочу рассказать о некоторых дополнительных возможностях по работе с css- и js-файлами, которые будут полезны ...
-
Обновление плагина miniMarket (версия 0.2.0)
В новой версии добавлена корзина и весь функционал, который обычно бывает на нее завязан. Демо можно пощупать здесь Скачать с GitHub Плагин уже доступен в каталоге: Что же из себя представляет текущая версия...
Делегирование — это, фактически, «жесткое» переопределение компонента, т.е. вместо исходного компонента используется «делегат». И «делегат» может быть только один (каждое последующее объявление делегата заменяет предыдущее).
Наследование — это нормальное наследование по всем канонам ООП (если быть более точным, то я называю это «динамическим автонаследованием», на Хабре писал об этом: habrahabr.ru/post/247351/). И «наследников» может быть сколько угодно, при этом первый «наследник» становится наследником исходного компонента, а каждый новый становится наследником предыдущего.
Механизм «делегирования» родился гораздо раньше механизма «наследования» (еще в ЛС), и, как правило, сейчас делегирование используется для переопределения файлов шаблонов. А для расширения функциональности следует использовать «наследование» (через $aInherits).