Exemplo n.º 1
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;
 }
 /**
  * 
  * @param string $menu
  * @param int $order
  * @return BOL_MenuItem
  */
 public function createEmptyItem($menu, $order)
 {
     $menuItem = new BOL_MenuItem();
     $documentKey = UTIL_HtmlTag::generateAutoId('mobile_page');
     $menuItem->setDocumentKey($documentKey);
     $menuItem->setPrefix(self::MENU_PREFIX);
     $menuItem->setKey($documentKey);
     $menuItem->setType($menu);
     $menuItem->setOrder($order);
     $this->navigationService->saveMenuItem($menuItem);
     $document = new BOL_Document();
     $document->isStatic = true;
     $document->isMobile = true;
     $document->setKey($menuItem->getKey());
     $document->setUri($menuItem->getKey());
     $this->navigationService->saveDocument($document);
     $document->setUri("cp-" . $document->getId());
     $this->navigationService->saveDocument($document);
     $this->editItem($menuItem, array(self::SETTING_LABEL => OW::getLanguage()->text("mobile", "admin_nav_default_menu_name"), self::SETTING_TITLE => OW::getLanguage()->text("mobile", "admin_nav_default_page_title"), self::SETTING_CONTENT => OW::getLanguage()->text("mobile", "admin_nav_default_page_content"), self::SETTING_VISIBLE_FOR => 3, self::SETTING_TYPE => "local", self::SETTING_URL => null));
     return $menuItem;
 }
Exemplo n.º 3
0
 public function index($params)
 {
     $id = (int) $params['id'];
     $this->assign('id', $id);
     $menu = BOL_NavigationService::getInstance()->findMenuItemById($id);
     if ($menu === null) {
         throw new Redirect404Exception();
     }
     $navigationService = BOL_NavigationService::getInstance();
     $document = $navigationService->findDocumentByKey($menu->getDocumentKey());
     if ($document === null) {
         $document = new BOL_Document();
         $document->setKey($menu->getDocumentKey());
         $document->setIsStatic(true);
     }
     $service = BOL_NavigationService::getInstance();
     $form = new EditLocalPageForm('edit-form', $menu);
     if (OW::getRequest()->isPost() && $form->isValid($_POST)) {
         $data = $form->getValues();
         //--
         $visibleFor = 0;
         $arr = !empty($data['visible-for']) ? $data['visible-for'] : array();
         foreach ($arr as $val) {
             $visibleFor += $val;
         }
         $service->saveMenuItem($menu->setVisibleFor($visibleFor));
         $uri = str_replace(UTIL_String::removeFirstAndLastSlashes(OW::getRouter()->getBaseUrl()), '', UTIL_String::removeFirstAndLastSlashes($data['url']));
         $document->setUri(UTIL_String::removeFirstAndLastSlashes($uri));
         $navigationService->saveDocument($document);
         $languageService = BOL_LanguageService::getInstance();
         $plugin = OW::getPluginManager()->getPlugin('base');
         //- name
         $langKey = $languageService->findKey($plugin->getKey(), $menu->getKey());
         if (!empty($langKey)) {
             $langValue = $languageService->findValue($languageService->getCurrent()->getId(), $langKey->getId());
             if ($langValue === null) {
                 $langValue = new BOL_LanguageValue();
                 $langValue->setKeyId($langKey->getId());
                 $langValue->setLanguageId($languageService->getCurrent()->getId());
             }
             $languageService->saveValue($langValue->setValue($data['name']));
         }
         //- title
         $langKey = $languageService->findKey($plugin->getKey(), 'local_page_title_' . $menu->getKey());
         if (!empty($langKey)) {
             $langValue = $languageService->findValue($languageService->getCurrent()->getId(), $langKey->getId());
             if ($langValue === null) {
                 $langValue = new BOL_LanguageValue();
                 $langValue->setKeyId($langKey->getId());
                 $langValue->setLanguageId($languageService->getCurrent()->getId());
             }
             $languageService->saveValue($langValue->setValue($data['title']));
         }
         //- meta tags
         $langKey = $languageService->findKey($plugin->getKey(), 'local_page_meta_tags_' . $menu->getKey());
         if (empty($langKey)) {
             $langKey = new BOL_LanguageKey();
             $langKey->setKey('local_page_meta_tags_' . $menu->getKey());
             $langKey->setPrefixId($languageService->findPrefixId($plugin->getKey()));
             $languageService->saveKey($langKey);
         }
         $langValue = $languageService->findValue($languageService->getCurrent()->getId(), $langKey->getId());
         if ($langValue === null) {
             $langValue = new BOL_LanguageValue();
             $langValue->setKeyId($langKey->getId());
             $langValue->setLanguageId($languageService->getCurrent()->getId());
         }
         $languageService->saveValue($langValue->setValue($data['meta-tags']));
         //- content
         $langKey = $languageService->findKey($plugin->getKey(), 'local_page_content_' . $menu->getKey());
         if (!empty($langKey)) {
             $langValue = $languageService->findValue($languageService->getCurrent()->getId(), $langKey->getId());
             if ($langValue === null) {
                 $langValue = new BOL_LanguageValue();
                 $langValue->setKeyId($langKey->getId());
                 $langValue->setLanguageId($languageService->getCurrent()->getId());
             }
             $languageService->saveValue($langValue->setValue($data['content']));
         }
         //~
         $languageService->generateCache($languageService->getCurrent()->getId());
         $adminPlugin = OW::getPluginManager()->getPlugin('admin');
         OW::getFeedback()->info(OW::getLanguage()->text($adminPlugin->getKey(), 'updated_msg'));
         $this->redirect();
         //--
     }
     $this->addForm($form, $menu);
 }