Вынести работу по добавлению хлебных крошек в соответствующие модули

Предлагаю вынести работу по добавлению хлебных крошек в соответствующие модули.
Т.е. за добавление хлебных крошек магазина отвечает модуль магазина, а не Structure_Controller_Breadcrumbs.

Чтобы при создании модуля со своей навигацией не приходилось переопределять класс Structure_Controller_Breadcrumbs

HostDEV.pw 02.05.2017
4
712
5

Комментарии

  • не использовать onBeforeRedeclaredShow, да использовать onBeforeAddStructure
    ну и тут уже проверять что за объект

    static public function onBeforeAddStructure($controller)
    {
    $object = Core_Page::instance()->object;

    if($object instanceof My_Controller_Show)
    {
    $aEntity = array();
    $controller->addBreadcrumbs($aEntity);
    }
    }

    17.05.2017 08:59:18
    alexpimnev
  • А зачем переопределять? Есть же хуки там

    04.05.2017 07:53:18
    alexpimnev

    помогите их найти пожалуйста

    04.05.2017 07:56:03
    HostDEV.pw

    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

    16.05.2017 19:58:11
    alexpimnev

    Как мне добавить свои крошки если после события 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
    Тут придется покостылить, в виде проверки на количество запусков

    17.05.2017 02:06:40
    HostDEV.pw