Exemplo n.º 1
0
 /**
  * Adds or updates new key and value
  *
  * @param int $languageId
  * @param string $prefix
  * @param string $key
  * @param string $value
  * @param bool $generateCache
  *
  * @return BOL_LanguageValue
  *
  * @throws LogicException
  */
 public function addOrUpdateValue($languageId, $prefix, $key, $value, $generateCache = true)
 {
     $prefixDto = $this->prefixDao->findByPrefix($prefix);
     if ($prefixDto == null) {
         throw new LogicException("Prefix `{$prefix}` not found!");
     }
     $keyDto = $this->findKey($prefix, $key);
     if ($keyDto === null) {
         $keyDto = new BOL_LanguageKey();
         $keyDto->setPrefixId($prefixDto->id)->setKey($key);
         $this->keyDao->save($keyDto);
     }
     $valueDto = $this->findValue($languageId, $keyDto->id);
     if ($valueDto === null) {
         $valueDto = new BOL_LanguageValue();
     }
     $valueDto->setLanguageId($languageId)->setKeyId($keyDto->getId())->setValue($value);
     $this->valueDao->save($valueDto);
     if ($generateCache) {
         $this->generateCache($valueDto->languageId);
     }
     return $valueDto;
 }
Exemplo n.º 2
0
 public function ajaxAddKey()
 {
     $languageService = BOL_LanguageService::getInstance();
     $prefixes = $languageService->getPrefixList();
     $language = $languageService->findById($_POST['language']);
     $addKeyForm = new AddKeyForm($prefixes, $language);
     if (OW::getRequest()->isPost() && $addKeyForm->isValid($_POST)) {
         $data = $addKeyForm->getValues();
         if (!$this->isDevMode() && !strstr($_SERVER['HTTP_REFERER'], 'dev-tools')) {
             $prefixId = $languageService->findPrefixId('ow_custom');
             $key = $languageService->generateCustomKey(trim($data['value']));
             $i = 0;
             //$u = $languageService->isKeyUnique( 'ow_custom', $data['key'] );
             $unique = $key;
             while (!$languageService->isKeyUnique('ow_custom', $unique)) {
                 $i++;
                 $unique = $key . $i;
             }
             $key = $unique;
         } else {
             if (!$languageService->isKeyUnique($data['prefix'], $data['key'])) {
                 exit(json_encode(array('result' => 'dublicate')));
             }
             $prefixId = $languageService->findPrefixId($data['prefix']);
             $key = trim($data['key']);
         }
         $keyDto = new BOL_LanguageKey();
         $languageService->saveKey($keyDto->setKey($key)->setPrefixId($prefixId));
         $valueDto = new BOL_LanguageValue();
         $valueDto->setKeyId($keyDto->getId())->setLanguageId($language->getId())->setValue($data['value']);
         $languageService->saveValue($valueDto);
         $languageService->generateCache($language->getId());
         OW::getFeedback()->info('Added');
         exit(json_encode(array('result' => 'success')));
     }
 }
Exemplo n.º 3
0
 public function importPrefix($xml, $refreshCache = false, $importOnlyActivePluginPrefix = false)
 {
     if (false === ($prefixesXml = $xml->xpath("/prefix"))) {
         return false;
     }
     $service = $this;
     $languageTag = (string) $prefixesXml[0]->attributes()->language_tag;
     $prefixName = strval($prefixesXml[0]->attributes()->name);
     if ($importOnlyActivePluginPrefix && !in_array($prefixName, $this->getExceptionPrefixes())) {
         $plugin = BOL_PluginService::getInstance()->findPluginByKey($prefixName);
         if (empty($plugin)) {
             return false;
         }
     }
     if (null === ($language = $service->findByTag($languageTag))) {
         $language = new BOL_Language();
         $language->setTag($languageTag)->setLabel((string) $prefixesXml[0]->attributes()->language_label)->setOrder($service->findMaxOrder() + 1)->setStatus('inactive');
         $language->setRtl((string) $prefixesXml[0]->attributes()->language_rtl);
         $service->save($language);
     }
     if (null === ($prefix = $service->findPrefix($prefixName))) {
         $prefix = new BOL_LanguagePrefix();
         $prefix->setPrefix($prefixName)->setLabel(strval($prefixesXml[0]->attributes()->label));
         $service->savePrefix($prefix);
     }
     $keysXml = $prefixesXml[0]->xpath('child::key');
     foreach ($keysXml as $keyXml) {
         if (null === ($key = $service->findKey((string) $prefixesXml[0]->attributes()->name, (string) $keyXml->attributes()->name))) {
             $key = new BOL_LanguageKey();
             $key->setKey((string) $keyXml->attributes()->name)->setPrefixId($prefix->getId());
             $service->saveKey($key);
         }
         if (null === ($value = $service->findValue($language->getId(), $key->getId()))) {
             $value = new BOL_LanguageValue();
             $value->setLanguageId($language->getId())->setKeyId($key->getId())->setValue((string) $keyXml->value);
             $service->saveValue($value, false);
         }
         if ($refreshCache) {
             $this->generateCache($language->getId());
         }
     }
 }
Exemplo n.º 4
0
 public function maintenance()
 {
     $language = OW::getLanguage();
     $this->setPageHeading($language->text('admin', 'maintenance_page_heading'));
     $this->setPageTitle($language->text('admin', 'maintenance_page_title'));
     $form = new Form('maintenance');
     $maintananceEnable = new CheckboxField('maintenance_enable');
     $maintananceEnable->setLabel($language->text('admin', 'maintenance_enable_label'));
     $maintananceEnable->setDescription($language->text('admin', 'maintenance_enable_desc'));
     $form->addElement($maintananceEnable);
     $intro = new Textarea('maintenance_text');
     $intro->setLabel($language->text('admin', 'maintenance_text_label'));
     $intro->setDescription($language->text('admin', 'maintenance_text_desc'));
     $form->addElement($intro);
     $submit = new Submit('save');
     $submit->setValue($language->text('admin', 'permissions_index_save'));
     $form->addElement($submit);
     $this->addForm($form);
     if (OW::getRequest()->isPost()) {
         if ($form->isValid($_POST)) {
             $data = $form->getValues();
             $langService = BOL_LanguageService::getInstance();
             $key = $langService->findKey('admin', 'maintenance_text_value');
             if ($key === null) {
                 $prefix = $langService->findPrefix('admin');
                 $key = new BOL_LanguageKey();
                 $key->setKey('maintenance_text_value');
                 $key->setPrefixId($prefix->getId());
                 $langService->saveKey($key);
             }
             $value = $langService->findValue($langService->getCurrent()->getId(), $key->getId());
             if ($value === null) {
                 $value = new BOL_LanguageValue();
                 $value->setKeyId($key->getId());
                 $value->setLanguageId($langService->getCurrent()->getId());
             }
             $value->setValue($data['maintenance_text']);
             $langService->saveValue($value);
             OW::getConfig()->saveConfig('base', 'maintenance', (bool) $data['maintenance_enable']);
             OW::getFeedback()->info($language->text('admin', 'maintenance_submit_success_message'));
             $this->redirect();
         }
     }
     $form->getElement('maintenance_text')->setValue($language->text('admin', 'maintenance_text_value'));
     $form->getElement('maintenance_enable')->setValue((bool) OW::getConfig()->getValue('base', 'maintenance'));
 }
Exemplo n.º 5
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);
 }
Exemplo n.º 6
0
 public function maintenance()
 {
     $language = OW::getLanguage();
     $this->setPageHeading($language->text('admin', 'maintenance_page_heading'));
     $this->setPageTitle($language->text('admin', 'maintenance_page_title'));
     $form = new Form('maintenance');
     $maintananceEnable = new CheckboxField('maintenance_enable');
     $maintananceEnable->setLabel($language->text('admin', 'maintenance_enable_label'));
     $maintananceEnable->setDescription($language->text('admin', 'maintenance_enable_desc'));
     $form->addElement($maintananceEnable);
     $intro = new Textarea('maintenance_text');
     $intro->setLabel($language->text('admin', 'maintenance_text_label'));
     $intro->setDescription($language->text('admin', 'maintenance_text_desc'));
     $form->addElement($intro);
     // splash screen
     $splashScreenEnable = new CheckboxField('splash_screen');
     $splashScreenEnable->setLabel($language->text('admin', 'splash_enable_label'));
     $splashScreenEnable->setDescription($language->text('admin', 'splash_enable_desc'));
     $form->addElement($splashScreenEnable);
     $intro = new Textarea('intro');
     $intro->setLabel($language->text('admin', 'splash_intro_label'));
     $intro->setDescription($language->text('admin', 'splash_intro_desc'));
     $form->addElement($intro);
     $buttonLabel = new TextField('button_label');
     $buttonLabel->setLabel($language->text('admin', 'splash_button_label'));
     $buttonLabel->setDescription($language->text('admin', 'splash_button_label_desc'));
     $form->addElement($buttonLabel);
     $leaveUrl = new TextField('leave_url');
     $leaveUrl->setLabel($language->text('admin', 'splash_leave_url_label'));
     $leaveUrl->setDescription($language->text('admin', 'splash_leave_url_desc'));
     $leaveUrl->addValidator(new UrlValidator());
     $form->addElement($leaveUrl);
     $submit = new Submit('save');
     $submit->setValue($language->text('admin', 'permissions_index_save'));
     $form->addElement($submit);
     $this->addForm($form);
     if (OW::getRequest()->isPost()) {
         if ($form->isValid($_POST)) {
             $data = $form->getValues();
             $langService = BOL_LanguageService::getInstance();
             $key = $langService->findKey('admin', 'maintenance_text_value');
             if ($key === null) {
                 $prefix = $langService->findPrefix('admin');
                 $key = new BOL_LanguageKey();
                 $key->setKey('maintenance_text_value');
                 $key->setPrefixId($prefix->getId());
                 $langService->saveKey($key);
             }
             $value = $langService->findValue($langService->getCurrent()->getId(), $key->getId());
             if ($value === null) {
                 $value = new BOL_LanguageValue();
                 $value->setKeyId($key->getId());
                 $value->setLanguageId($langService->getCurrent()->getId());
             }
             $value->setValue($data['maintenance_text']);
             $langService->saveValue($value);
             OW::getConfig()->saveConfig('base', 'maintenance', (bool) $data['maintenance_enable']);
             // save splash screen
             $key = $langService->findKey('admin', 'splash_intro_value');
             if ($key === null) {
                 $prefix = $langService->findPrefix('admin');
                 $key = new BOL_LanguageKey();
                 $key->setKey('splash_intro_value');
                 $key->setPrefixId($prefix->getId());
                 $langService->saveKey($key);
             }
             $value = $langService->findValue($langService->getCurrent()->getId(), $key->getId());
             if ($value === null) {
                 $value = new BOL_LanguageValue();
                 $value->setKeyId($key->getId());
                 $value->setLanguageId($langService->getCurrent()->getId());
             }
             $value->setValue($data['intro']);
             $langService->saveValue($value);
             $key = $langService->findKey('admin', 'splash_button_value');
             if ($key === null) {
                 $prefix = $langService->findPrefix('admin');
                 $key = new BOL_LanguageKey();
                 $key->setKey('splash_button_value');
                 $key->setPrefixId($prefix->getId());
                 $langService->saveKey($key);
             }
             $value = $langService->findValue($langService->getCurrent()->getId(), $key->getId());
             if ($value === null) {
                 $value = new BOL_LanguageValue();
                 $value->setKeyId($key->getId());
                 $value->setLanguageId($langService->getCurrent()->getId());
             }
             $value->setValue($data['button_label']);
             $langService->saveValue($value);
             $url = trim($data['leave_url']);
             if (!empty($url) && !strstr($url, 'http')) {
                 $url = 'http://' . $url;
             }
             OW::getConfig()->saveConfig('base', 'splash_leave_url', $url);
             OW::getConfig()->saveConfig('base', 'splash_screen', (bool) $data['splash_screen']);
             OW::getFeedback()->info($language->text('admin', 'maintenance_submit_success_message'));
             $this->redirect();
         }
     }
     $form->getElement('maintenance_text')->setValue($language->text('admin', 'maintenance_text_value'));
     $form->getElement('maintenance_enable')->setValue((bool) OW::getConfig()->getValue('base', 'maintenance'));
     // splash screen
     $form->getElement('intro')->setValue($language->text('admin', 'splash_intro_value'));
     $form->getElement('button_label')->setValue($language->text('admin', 'splash_button_value'));
     $form->getElement('leave_url')->setValue(OW::getConfig()->getValue('base', 'splash_leave_url'));
     $form->getElement('splash_screen')->setValue((bool) OW::getConfig()->getValue('base', 'splash_screen'));
 }