/** * @param string $xml * @param bool $refreshCache * @param bool $importOnlyActivePluginPrefix * @param bool $updateValues * @return bool */ public function importPrefix($xml, $refreshCache = false, $importOnlyActivePluginPrefix = false, $updateValues = false) { if (false === ($prefixesXml = $xml->xpath("/prefix"))) { return false; } $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 = $this->findByTag($languageTag))) { $language = new BOL_Language(); $language->setTag($languageTag)->setLabel((string) $prefixesXml[0]->attributes()->language_label)->setOrder($this->findMaxOrder() + 1)->setStatus('inactive'); $language->setRtl((string) $prefixesXml[0]->attributes()->language_rtl); $this->save($language); } if (null === ($prefix = $this->findPrefix($prefixName))) { $prefix = new BOL_LanguagePrefix(); $prefix->setPrefix($prefixName)->setLabel(strval($prefixesXml[0]->attributes()->label)); $this->savePrefix($prefix); } $keysXml = $prefixesXml[0]->xpath('child::key'); foreach ($keysXml as $keyXml) { if (null === ($key = $this->findKey((string) $prefixesXml[0]->attributes()->name, (string) $keyXml->attributes()->name))) { $key = new BOL_LanguageKey(); $key->setKey((string) $keyXml->attributes()->name); $key->setPrefixId($prefix->getId()); $this->saveKey($key); } $valueDto = $this->findValue($language->getId(), $key->getId()); if ($valueDto !== null && !$updateValues) { continue; } if ($valueDto === null) { $valueDto = new BOL_LanguageValue(); $valueDto->setLanguageId($language->getId()); $valueDto->setKeyId($key->getId()); } $valueDto->setValue((string) $keyXml->value); $this->saveValue($valueDto, false); } if ($refreshCache) { $this->generateCache($language->getId()); } }
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'))); } }
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 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 importPrefix($xml, $refreshCache = false) { if (false === ($prefixesXml = $xml->xpath("/prefix"))) { return false; } $service = $this; $languageTag = (string) $prefixesXml[0]->attributes()->language_tag; 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((string) $prefixesXml[0]->attributes()->name))) { $prefix = new BOL_LanguagePrefix(); $prefix->setPrefix(strval($prefixesXml[0]->attributes()->name))->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()); } } }
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')); }