/** * Creates a form to edit systemsettings or updates them * * @return string "" in case of success * @autoTestable * @permissions right1 */ protected function actionSystemSettings() { $strReturn = ""; //Check for needed rights if ($this->getParam("save") != "true") { //Create a warning before doing s.th. $strReturn .= $this->objToolkit->warningBox($this->getLang("warnung_settings")); $arrTabs = array(); $arrSettings = class_module_system_setting::getAllConfigValues(); /** @var class_module_system_module $objCurrentModule */ $objCurrentModule = null; $strRows = ""; foreach ($arrSettings as $objOneSetting) { if ($objCurrentModule === null || $objCurrentModule->getIntNr() != $objOneSetting->getIntModule()) { $objTemp = $this->getModuleDataID($objOneSetting->getIntModule(), true); if ($objTemp !== null) { //In the first loop, ignore the output if ($objCurrentModule !== null) { //Build a form to return $strTabContent = $this->objToolkit->formHeader(class_link::getLinkAdminHref($this->getArrModule("modul"), "systemSettings")); $strTabContent .= $strRows; $strTabContent .= $this->objToolkit->formInputHidden("save", "true"); $strTabContent .= $this->objToolkit->formInputSubmit($this->getLang("commons_save")); $strTabContent .= $this->objToolkit->formClose(); $arrTabs[$this->getLang("modul_titel", $objCurrentModule->getStrName())] = $strTabContent; } $strRows = ""; $objCurrentModule = $objTemp; } } //Build the rows //Print a help-text? $strHelper = $this->getLang($objOneSetting->getStrName() . "hint", $objCurrentModule->getStrName()); if ($strHelper != "!" . $objOneSetting->getStrName() . "hint!") { $strRows .= $this->objToolkit->formTextRow($strHelper); } //The input element itself if ($objOneSetting->getIntType() == 0) { $arrDD = array(); $arrDD["true"] = $this->getLang("commons_yes"); $arrDD["false"] = $this->getLang("commons_no"); $strRows .= $this->objToolkit->formInputDropdown("set[" . $objOneSetting->getSystemid() . "]", $arrDD, $this->getLang($objOneSetting->getStrName(), $objCurrentModule->getStrName()), $objOneSetting->getStrValue()); } elseif ($objOneSetting->getIntType() == 3) { $strRows .= $this->objToolkit->formInputPageSelector("set[" . $objOneSetting->getSystemid() . "]", $this->getLang($objOneSetting->getStrName(), $objCurrentModule->getStrName()), $objOneSetting->getStrValue()); } else { $strRows .= $this->objToolkit->formInputText("set[" . $objOneSetting->getSystemid() . "]", $this->getLang($objOneSetting->getStrName(), $objCurrentModule->getStrName()), $objOneSetting->getStrValue()); } } //Build a form to return -> include the last module $strTabContent = $this->objToolkit->formHeader(class_link::getLinkAdminHref($this->getArrModule("modul"), "systemSettings")); $strTabContent .= $strRows; $strTabContent .= $this->objToolkit->formInputHidden("save", "true"); $strTabContent .= $this->objToolkit->formInputSubmit($this->getLang("commons_save")); $strTabContent .= $this->objToolkit->formClose(); $arrTabs[$this->getLang("modul_titel", $objCurrentModule->getStrName())] = $strTabContent; $strReturn .= $this->objToolkit->getTabbedContent($arrTabs); } else { //Seems we have to update a few records $arrSettings = $this->getAllParams(); foreach ($arrSettings["set"] as $strKey => $strValue) { $objSetting = new class_module_system_setting($strKey); $objSetting->setStrValue($strValue); $objSetting->updateObjectToDb(); } $strReturn .= $this->objToolkit->warningBox($this->getLang("settings_updated")); } return $strReturn; }