public function editItem(BOL_MenuItem $item, $settings) { $languageService = BOL_LanguageService::getInstance(); $currentLanguageId = $languageService->getCurrent()->getId(); // Menu Item Name if (isset($settings[self::SETTING_LABEL])) { $languageService->addOrUpdateValue($currentLanguageId, $item->prefix, $item->key, $settings[self::SETTING_LABEL], false); } // Page Title if (isset($settings[self::SETTING_TITLE])) { $languageService->addOrUpdateValue($currentLanguageId, $item->prefix, $item->key . "_title", $settings[self::SETTING_TITLE], false); } // Page Content if (isset($settings[self::SETTING_CONTENT])) { $content = $settings[self::SETTING_CONTENT]; $languageService->addOrUpdateValue($currentLanguageId, $item->prefix, $item->key . "_content", $content, false); } if (isset($settings[self::SETTING_VISIBLE_FOR])) { $item->visibleFor = is_array($settings[self::SETTING_VISIBLE_FOR]) ? array_sum($settings[self::SETTING_VISIBLE_FOR]) : (int) $settings[self::SETTING_VISIBLE_FOR]; } if (isset($settings[self::SETTING_TYPE]) && $settings[self::SETTING_TYPE] == "local") { $settings[self::SETTING_URL] = null; $item->externalUrl = null; } if (isset($settings[self::SETTING_URL])) { $item->externalUrl = $settings[self::SETTING_URL]; } $this->navigationService->saveMenuItem($item); $languageService->generateCache($currentLanguageId); }
/** * Adds menu items to global menu system. * * @param string $menuType * @param string $routeName * @param string $prefix * @param string $key * @param string $visibleFor */ public function addMenuItem($menuType, $routeName, $prefix, $key, $visibleFor = self::VISIBLE_FOR_ALL) { if (empty($menuType) || empty($routeName) || empty($prefix) || empty($key)) { throw new InvalidArgumentException(); } $menuType = trim($menuType); $order = $this->navService->findMaxSortOrderForMenuType($menuType); $menuItem = new BOL_MenuItem(); $menuItem->setType($menuType); $menuItem->setRoutePath($routeName); $menuItem->setPrefix($prefix); $menuItem->setKey($key); $menuItem->setOrder($order + 1); $menuItem->setVisibleFor($visibleFor); $this->navService->saveMenuItem($menuItem); }