/** * @inheritDoc */ public function generateFieldsFromObject() { parent::generateFieldsFromObject(); $objNews = $this->getObjSourceobject(); if ($objNews->getSystemid() != class_module_system_module::getModuleByName("news")->getSystemid()) { //search the languages maintained $objLanguageManager = class_module_languages_languageset::getLanguagesetForSystemid($objNews->getSystemid()); if ($objLanguageManager != null) { $arrMaintained = $objLanguageManager->getArrLanguageSet(); $arrDD = array(); foreach ($arrMaintained as $strLanguageId => $strSystemid) { $objLanguage = new class_module_languages_language($strLanguageId); $arrDD[$strSystemid] = $this->getLang("lang_" . $objLanguage->getStrName(), "languages"); } class_module_languages_admin::enableLanguageSwitch(); class_module_languages_admin::setArrLanguageSwitchEntries($arrDD); class_module_languages_admin::setStrOnChangeHandler("window.location='" . class_link::getLinkAdminHref("news", "editNews") . (class_module_system_setting::getConfigValue("_system_mod_rewrite_") == "true" ? "?" : "&") . "systemid='+this.value+'&pe=" . class_carrier::getInstance()->getParam("pe") . "';"); class_module_languages_admin::setStrActiveKey($objNews->getSystemid()); } } $arrCats = class_module_news_category::getObjectList(); if (count($arrCats) > 0) { $arrKeyValues = array(); /** @var class_module_news_category $objOneCat */ foreach ($arrCats as $objOneCat) { $arrKeyValues[$objOneCat->getSystemid()] = $objOneCat->getStrDisplayName(); } $this->getField("cats")->setStrLabel($this->getLang("commons_categories"))->setArrKeyValues($arrKeyValues); } if (class_module_system_setting::getConfigValue("_news_news_datetime_") == "true") { $this->addField(new class_formentry_datetime($this->getStrFormname(), "objDateStart", $objNews), "datestart")->setBitMandatory(true)->setStrLabel($this->getLang("form_news_datestart")); $this->addField(new class_formentry_datetime($this->getStrFormname(), "objDateEnd", $objNews), "dateend")->setStrLabel($this->getLang("form_news_dateend")); $this->addField(new class_formentry_datetime($this->getStrFormname(), "objDateSpecial", $objNews), "datespecial")->setStrLabel($this->getLang("form_news_datespecial")); } }
/** * @return void */ protected function actionAssignToLanguageset() { $objNews = class_objectfactory::getInstance()->getObject($this->getSystemid()); if ($objNews->rightEdit()) { $objLanguageset = class_module_languages_languageset::getLanguagesetForSystemid($this->getSystemid()); $objTargetLanguage = new class_module_languages_language($this->getParam("languageset_language")); if ($objLanguageset == null && $objTargetLanguage->getStrName() != "") { $objLanguageset = new class_module_languages_languageset(); $objLanguageset->setSystemidForLanguageid($this->getSystemid(), $objTargetLanguage->getSystemid()); } $this->adminReload(class_link::getLinkAdminHref($this->getArrModule("modul"), "editLanguageset", "&systemid=" . $this->getSystemid())); } }
/** * saves the submitted form-data as a new language, oder updates the corresponding language * * @throws class_exception * @return string, "" in case of success * @permissions edit */ protected function actionSaveLanguage() { $strOldLang = ""; if ($this->getParam("mode") == "new") { $objLanguage = new class_module_languages_language(); } else { $objLanguage = new class_module_languages_language($this->getSystemid()); $strOldLang = $objLanguage->getStrName(); if (!$objLanguage->rightEdit()) { return $this->getLang("commons_error_permissions"); } } $objForm = $this->getAdminForm($objLanguage); if (!$objForm->validateForm()) { return $this->actionNew($this->getParam("mode"), $objForm); } $objForm->updateSourceObject(); if ($this->getParam("mode") == "new") { //language already existing? if (class_module_languages_language::getLanguageByName($objLanguage->getStrName()) !== false) { return $this->getLang("language_existing"); } } elseif ($this->getParam("mode") == "edit") { $objTestLang = class_module_languages_language::getLanguageByName($objLanguage->getStrName()); if ($objTestLang !== false && $objTestLang->getSystemid() != $objLanguage->getSystemid()) { return $this->getLang("language_existing"); } } if (!$objLanguage->updateObjectToDb()) { throw new class_exception("Error creating new language", class_exception::$level_ERROR); } if ($this->getParam("mode") == "edit") { //move contents to a new language if ($strOldLang != $objLanguage->getStrName()) { if (!$objLanguage->moveContentsToCurrentLanguage($strOldLang)) { throw new class_exception("Error moving contents to new language", class_exception::$level_ERROR); } } } $this->adminReload(class_link::getLinkAdminHref($this->getArrModule("modul"))); }
/** * Since the portal may be split in different languages, * return the content lang of the current record using the common * abbreviation such as "de" or "en". * If the content is not assigned to any language, return "" instead (e.g. a single image). * * @return mixed */ public function getContentLang() { //see if the entry is assigned to a language $objSet = class_module_languages_languageset::getLanguagesetForSystemid($this->getSystemid()); if ($objSet != null && $objSet->getLanguageidForSystemid($this->getSystemid()) !== null) { $objLang = new class_module_languages_language($objSet->getLanguageidForSystemid($this->getSystemid())); return $objLang->getStrName(); } return ""; }