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 deleteItem(BOL_MenuItem $item) { $document = $this->navigationService->findDocumentByKey($item->getDocumentKey()); $this->navigationService->deleteDocument($document); $this->navigationService->deleteMenuItem($item); $this->deleteLanguageKeyIfExists($item->getPrefix(), $item->getKey()); $this->deleteLanguageKeyIfExists(self::LANG_PREFIX, $item->getKey() . "_title"); $this->deleteLanguageKeyIfExists(self::LANG_PREFIX, $item->getKey() . "_content"); }
public function __construct($name, BOL_MenuItem $menu) { parent::__construct($name); $navigationService = BOL_NavigationService::getInstance(); $document = $navigationService->findDocumentByKey($menu->getDocumentKey()); if ($document === null) { $document = new BOL_Document(); $document->setKey($menu->getDocumentKey()); } $language = OW_Language::getInstance(); $languageService = BOL_LanguageService::getInstance(); $currentLanguageId = $languageService->getCurrent()->getId(); $plugin = OW::getPluginManager()->getPlugin('base'); $adminPlugin = OW::getPluginManager()->getPlugin('admin'); $nameTextField = new TextField('name'); $langValueDto = $languageService->getValue($currentLanguageId, $plugin->getKey(), $menu->getKey()); $langValue = $langValueDto === null ? '' : $language->text($plugin->getKey(), $menu->getKey()); $this->addElement($nameTextField->setValue($langValue)->setLabel(OW::getLanguage()->text('admin', 'pages_edit_local_menu_name'))->setRequired()); $titleTextField = new TextField('title'); $langValueDto = $languageService->getValue($currentLanguageId, $plugin->getKey(), 'local_page_title_' . $menu->getKey()); $langValue = $langValueDto === null ? '' : $language->text($plugin->getKey(), 'local_page_title_' . $menu->getKey()); $this->addElement($titleTextField->setValue($langValue)->setLabel(OW::getLanguage()->text('admin', 'pages_edit_local_page_title'))->setRequired(true)); $urlTextField = new TextField('url'); $urlTextField->addValidator(new LocalPageUniqueValidator($document->getUri())); $this->addElement($urlTextField->setValue($document->getUri())->setLabel(OW::getLanguage()->text('admin', 'pages_edit_local_page_url'))->setRequired(true)); $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'))); $metaTagsTextarea = new Textarea('meta-tags'); $langValueDto = $languageService->getValue($currentLanguageId, $plugin->getKey(), 'local_page_meta_tags_' . $menu->getKey()); $langValue = $langValueDto === null ? '' : $language->text($plugin->getKey(), 'local_page_meta_tags_' . $menu->getKey()); $this->addElement($metaTagsTextarea->setLabel('Page meta tags')->setValue($langValue)->setDescription(OW::getLanguage()->text('admin', 'pages_page_field_meta_desc'))->setId('meta-tags')); $contentTextArea = new Textarea('content'); $contentTextArea->setDescription(OW::getLanguage()->text('admin', 'pages_page_field_content_desc', array('src' => OW::getThemeManager()->getCurrentTheme()->getStaticImagesUrl() . 'question.png', 'url' => '#'))); $langValueDto = $languageService->getValue($currentLanguageId, $plugin->getKey(), 'local_page_content_' . $menu->getKey()); $langValue = $langValueDto === null ? '' : $language->text($plugin->getKey(), 'local_page_content_' . $menu->getKey()); $this->addElement($contentTextArea->setLabel(OW::getLanguage()->text('admin', 'pages_edit_local_page_content'))->setValue($langValue)->setId('content')); $saveSubmit = new Submit('save'); $this->addElement($saveSubmit->setValue($language->text($adminPlugin->getKey(), 'save_btn_label'))); }