/** * @param ModuleMenu_EntityMenu $oMenu */ protected function _addMenuItem($oMenu) { // Создадим элемент меню $oMenuItem = E::ModuleMenu()->CreateMenuItem('plugin.sandbox.topics', array('text' => array('{{plugin.sandbox.menu_text}}', 'hook:new_sandbox_count' => array('red')), 'link' => R::GetPath('index/sandbox'), 'active' => array('topic_kind' => array('sandbox')), 'options' => array('class' => '', 'link_title' => '{{plugin.sandbox.menu_text}}'))); // Добавим в меню $oMenu->AddItem($oMenuItem); // Сохраним E::ModuleMenu()->SaveMenu($oMenu); }
/** * Сохраняем меню * * @param ModuleMenu_EntityMenu $oMenu */ public function SaveMenu($oMenu) { // Установим объект для дальнейшего использования Config::Set("menu.data.{$oMenu->getId()}.items", $oMenu->GetItems()); // И конфиг сохраним $aNewConfigData = array(); /** @var ModuleMenu_EntityItem $oMenuItem */ foreach ($oMenu->GetItems() as $sMenuId => $oMenuItem) { $aNewConfigData[$sMenuId] = $oMenuItem ? $oMenuItem->getItemConfig() : ""; } Config::WriteCustomConfig(array("menu.data.{$oMenu->getId()}.list" => $aNewConfigData)); Config::Set("menu.data.{$oMenu->getId()}.list", $aNewConfigData); }
/** * Сохраняем меню * * @param ModuleMenu_EntityMenu $oMenu */ public function SaveMenu($oMenu) { // Get config data of the menu $aMenuConfig = $oMenu->GetConfig(true); $sConfigKey = 'menu.data.' . $oMenu->getId(); // Set in current common config Config::Set($sConfigKey, null); Config::Set($sConfigKey, $aMenuConfig); // Save custom config Config::ResetCustomConfig($sConfigKey); Config::WriteCustomConfig(array($sConfigKey => $aMenuConfig)); // Clear cache of the menu $this->ClearMenuCache($oMenu->getId()); }