Example #1
0
 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')));
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 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 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");
 }
Example #5
0
 public function __construct($name, BOL_MenuItem $menu)
 {
     parent::__construct($name);
     $language = OW_Language::getInstance();
     $plugin = OW::getPluginManager()->getPlugin('base');
     $adminPlugin = OW::getPluginManager()->getPlugin('admin');
     $nameTextField = new TextField('name');
     $this->addElement($nameTextField->setValue($language->text($plugin->getKey(), $menu->getKey()))->setLabel(OW::getLanguage()->text('admin', 'pages_edit_external_menu_name_label'))->setRequired(true));
     $urlTextField = new TextField('url');
     $urlTextField->addValidator(new ADMIN_CLASS_ExternalPageUrlValidator());
     $this->addElement($urlTextField->setValue($menu->getExternalUrl())->setLabel(OW::getLanguage()->text('admin', 'pages_edit_external_url_label'))->setRequired(true));
     $extOpenInNewWindow = new CheckboxField('ext-open-in-new-window');
     $this->addElement($extOpenInNewWindow->setLabel(OW::getLanguage()->text('admin', 'pages_edit_external_url_open_in_new_window'))->setValue($menu->getNewWindow()));
     $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_external_visible_for')));
     $saveSubmit = new Submit('save');
     $this->addElement($saveSubmit->setValue($language->text($adminPlugin->getKey(), 'save_btn_label')));
 }
Example #6
0
 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;
 }
Example #7
0
 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')));
 }