/** * 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; }
/** * Add new lang key * * @param int $prefixId * @param string $key * @return BOL_LanguageKey */ public function addKey($prefixId, $key) { $dto = new BOL_LanguageKey(); $dto->setKey($key); $dto->setPrefixId($prefixId); BOL_LanguageKeyDao::getInstance()->save($dto); return $dto; }
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); }
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')); }
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')); }