Вынести работу по добавлению хлебных крошек в соответствующие модули
Предлагаю вынести работу по добавлению хлебных крошек в соответствующие модули.
Т.е. за добавление хлебных крошек магазина отвечает модуль магазина, а не Structure_Controller_Breadcrumbs.
Чтобы при создании модуля со своей навигацией не приходилось переопределять класс Structure_Controller_Breadcrumbs
Комментарии
-
не использовать onBeforeRedeclaredShow, да использовать onBeforeAddStructure
ну и тут уже проверять что за объект
static public function onBeforeAddStructure($controller)
{
$object = Core_Page::instance()->object;
if($object instanceof My_Controller_Show)
{
$aEntity = array();
$controller->addBreadcrumbs($aEntity);
}
}
-
А зачем переопределять? Есть же хуки там
помогите их найти пожалуйста
Structure_Controller_Breadcrumbs
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeRedeclaredShow
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddInformationsystemItem
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddInformationsystemItem
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddInformationsystemGroups
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddInformationsystemGroups
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddShopItem
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddShopItem
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddShopGroups
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddShopGroups
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddForumTopic
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddForumTopic
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddForumCategory
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddForumCategory
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddStructure
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddStructureКак мне добавить свои крошки если после события onBeforeRedeclaredShow происходит их очистка
$this->_breadcrumbs = array();
А также что выполнения событий:
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddInformationsystemItem
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddInformationsystemItem
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddInformationsystemGroups
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddInformationsystemGroups
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddShopItem
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddShopItem
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddShopGroups
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddShopGroups
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddForumTopic
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddForumTopic
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddForumCategory
@hostcms-event Structure_Controller_Breadcrumbs.onAfterAddForumCategory
может и не произойти, т.к. контроллер показа может быть отличным от инфосистемы, магазина и форума.
Можно конечно добавить навешать событие на
@hostcms-event Structure_Controller_Breadcrumbs.onBeforeAddStructure
Тут придется покостылить, в виде проверки на количество запусков