public function __construct($name, BOL_MenuItem $menu) { parent::__construct($name); $navigationService = BOL_NavigationService::getInstance(); $document = $navigationService->findDocumentByKey($menu->getDocumentKey()); $language = OW_Language::getInstance(); $adminPlugin = OW::getPluginManager()->getPlugin('admin'); $nameTextField = new TextField('name'); $this->addElement($nameTextField->setValue($language->text($menu->getPrefix(), $menu->getKey()))->setLabel(OW::getLanguage()->text('admin', 'pages_edit_local_menu_name'))->setRequired()); $visibleForCheckboxGroup = new CheckboxGroup('visible-for'); $visibleFor = $menu->getVisibleFor(); $options = array('1' => OW::getLanguage()->text('admin', 'pages_edit_visible_for_guests'), '2' => OW::getLanguage()->text('admin', 'pages_edit_visible_for_members')); $values = array(); foreach ($options as $value => $option) { if (!($value & $visibleFor)) { continue; } $values[] = $value; } $this->addElement($visibleForCheckboxGroup->setOptions($options)->setValue($values)->setLabel(OW::getLanguage()->text('admin', 'pages_edit_local_visible_for'))); $submit = new Submit('save'); $this->addElement($submit->setValue(OW::getLanguage()->text('admin', 'save_btn_label'))); }
public function activateMenuItem() { if (!OW::getDocument()->getMasterPage() instanceof ADMIN_CLASS_MasterPage) { if (OW::getRequest()->getRequestUri() === '/' || OW::getRequest()->getRequestUri() === '') { OW::getNavigation()->activateMenuItem(OW_Navigation::MAIN, $this->indexMenuItem->getPrefix(), $this->indexMenuItem->getKey()); } } }
public function process($params) { $service = BOL_NavigationService::getInstance(); /* @var $service BOL_NavigationService */ $menuItem = new BOL_MenuItem(); $doc_key = UTIL_HtmlTag::generateAutoId('page'); $menuItem->setDocumentKey($doc_key); $menuItem->setPrefix('base'); $menuItem->setKey($doc_key); $menuItem->setType($params['type']); $order = $service->findMaxSortOrderForMenuType($params['type']); $order; $menuItem->setOrder($order); $visibleFor = 0; $arr = !empty($_POST['visible-for']) ? $_POST['visible-for'] : array(); foreach ($arr as $val) { $visibleFor += $val; } //hotfix if ($visibleFor === 0) { $visibleFor = 3; } $menuItem->setVisibleFor($visibleFor); $url = ''; $languageService = BOL_LanguageService::getInstance(); $prefixDto = $languageService->findPrefix($menuItem->getPrefix()); switch ($_POST['type']) { case 'local': $service->saveMenuItem($menuItem); $document = new BOL_Document(); $document->setIsStatic(true); $document->setKey($menuItem->getKey()); $url = str_replace(UTIL_String::removeFirstAndLastSlashes(OW::getRouter()->getBaseUrl()), '', UTIL_String::removeFirstAndLastSlashes($_POST['local-url'])); $document->setUri(UTIL_String::removeFirstAndLastSlashes($url)); $service->saveDocument($document); //- name $currentLanguageId = $languageService->getCurrent()->getId(); $keyDto = $languageService->addKey($prefixDto->getId(), $menuItem->getKey()); $menuName = $_POST['name']; $languageService->addValue($currentLanguageId, $menuItem->getPrefix(), $keyDto->getKey(), $menuName); //- title $keyDto = $languageService->addKey($prefixDto->getId(), 'local_page_title_' . $menuItem->getKey()); $title = empty($_POST['title']) ? '' : $_POST['title']; $languageService->addValue($currentLanguageId, $menuItem->getPrefix(), $keyDto->getKey(), $title); //- meta tags $keyDto = $languageService->addKey($prefixDto->getId(), 'local_page_meta_tags_' . $menuItem->getKey()); $metaTagsStr = empty($_POST['meta-tags']) ? '' : $_POST['meta-tags']; $languageService->addValue($currentLanguageId, $menuItem->getPrefix(), $keyDto->getKey(), $metaTagsStr); //- content $keyDto = $languageService->addKey($prefixDto->getId(), 'local_page_content_' . $menuItem->getKey()); $contentStr = empty($_POST['content']) ? '' : $_POST['content']; $languageService->addValue($currentLanguageId, $menuItem->getPrefix(), $keyDto->getKey(), $contentStr); //~ $languageService->generateCache($currentLanguageId); break; case 'external': $menuItem->setExternalUrl($_POST['external-url']); $menuItem->setNewWindow(!empty($_POST['ext-open-in-new-window']) && $_POST['ext-open-in-new-window'] == 'on' ? true : false); $service->saveMenuItem($menuItem); $keyDto = $languageService->addKey($prefixDto->getId(), $menuItem->getKey()); $languageService->addValue($languageService->getCurrent()->getId(), $menuItem->getPrefix(), $keyDto->getKey(), $_POST['name']); $languageService->generateCache($languageService->getCurrent()->getId()); break; } header('location: ' . OW::getRouter()->urlForRoute('admin_pages_main')); exit; }