/**
  * @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"));
     }
 }
 /**
  * Returns the ready switch-htmlcode
  *
  * @return string
  */
 public function loadData()
 {
     //fallback for old elements not yet using the template
     if (!isset($this->arrElementData["char1"]) || $this->arrElementData["char1"] == "") {
         $this->arrElementData["char1"] = "languageswitch.tpl";
     }
     $arrObjLanguages = class_module_languages_language::getObjectList(true);
     //load the languageset in order to generate more specific switches
     $objLanguageset = class_module_languages_languageset::getLanguagesetForSystemid($this->getParam("systemid"));
     //Iterate over all languages
     $strRows = "";
     foreach ($arrObjLanguages as $objOneLanguage) {
         //Check, if the current page has elements
         $objPage = class_module_pages_page::getPageByName($this->getPagename());
         $objPage->setStrLanguage($objOneLanguage->getStrName());
         if ($objPage === null) {
             continue;
         }
         if ((int) $objPage->getNumberOfElementsOnPage(true) == 0) {
             continue;
         }
         $strTargetSystemid = null;
         if ($objLanguageset != null) {
             $strTargetSystemid = $objLanguageset->getSystemidForLanguageid($objOneLanguage->getSystemid());
         }
         //the languageswitch is content aware. check if the target id is a news-entry
         $strSeoAddon = "";
         if (validateSystemid($strTargetSystemid)) {
             $objRecord = class_objectfactory::getInstance()->getObject($strTargetSystemid);
             $strSeoAddon = $objRecord->getStrDisplayName();
         }
         //and the link
         $arrTemplate = array();
         if ($strTargetSystemid === null) {
             $arrTemplate["href"] = getLinkPortalHref($objPage->getStrName(), "", "", "", "", $objOneLanguage->getStrName(), $strSeoAddon);
         } else {
             $arrTemplate["href"] = getLinkPortalHref($objPage->getStrName(), "", $this->getAction(), "", $strTargetSystemid, $objOneLanguage->getStrName(), $strSeoAddon);
         }
         $arrTemplate["langname_short"] = $objOneLanguage->getStrName();
         $arrTemplate["langname_long"] = $this->getLang("lang_" . $objOneLanguage->getStrName());
         $strTemplateRowID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_entry");
         $strTemplateActiveRowID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_entry_active");
         if ($objOneLanguage->getStrName() == $this->getStrPortalLanguage()) {
             $strRows .= $this->fillTemplate($arrTemplate, $strTemplateActiveRowID);
         } else {
             $strRows .= $this->fillTemplate($arrTemplate, $strTemplateRowID);
         }
     }
     $strTemplateWrapperID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_wrapper");
     return $this->fillTemplate(array("languageswitch_entries" => $strRows), $strTemplateWrapperID);
 }
Ejemplo n.º 3
0
 /**
  * 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 "";
 }
Ejemplo n.º 4
0
 /**
  * @return void
  */
 protected function actionRemoveFromLanguageset()
 {
     $objNews = class_objectfactory::getInstance()->getObject($this->getSystemid());
     if ($objNews->rightEdit()) {
         $objLanguageset = class_module_languages_languageset::getLanguagesetForSystemid($this->getSystemid());
         if ($objLanguageset != null) {
             $objLanguageset->removeSystemidFromLanguageeset($this->getSystemid());
         }
         $this->adminReload(class_link::getLinkAdminHref($this->getArrModule("modul"), "editLanguageset", "&systemid=" . $this->getSystemid()));
     }
 }
 /**
  * Creates a new languageset for the passed systemid and returns the new
  * instance.
  * If there's a languageset already existing, the languageset is loaded
  * instead of creating a new one.
  *
  * @param string $strSystemid
  * @param class_module_languages_language $objTargetLanguage
  *
  * @return class_module_languages_languageset
  */
 public static function createLanguagesetForSystemid($strSystemid, $objTargetLanguage)
 {
     //already existing?
     $objLanguageset = class_module_languages_languageset::getLanguagesetForSystemid($strSystemid);
     if ($objLanguageset == null) {
         //create a new one
         $objLanguageset = new class_module_languages_languageset("");
         $objLanguageset->setSystemidForLanguageid($strSystemid, $objTargetLanguage->getSystemid());
     } else {
         if ($objLanguageset->getSystemidForLanguageid($objTargetLanguage->getSystemid()) == null) {
             //update the languageset
             $objLanguageset->setSystemidForLanguageid($strSystemid, $objTargetLanguage->getSystemid());
         }
     }
     return new $objLanguageset();
 }