/** * @return string * @access private */ function _ShowPreferences() { // If there are no settings load return if (count($this->_Preferences->Settings) <= 0) { return ''; } // Initialize the formMaker class $formMaker = new FormMaker($this->_Translation->GetTranslation('todo'), $this->_SqlConnection); // Add necessary inputs $formMaker->AddForm('settings'); $formMaker->AddHiddenInput('settings', 'page', 'preferences'); $formMaker->AddHiddenInput('settings', 'action', 'save'); // Go through each preferences group foreach ($this->_Preferences->Settings as $settingsGroup => $settings) { // Add a new form to the formmaker $formMaker->AddForm("settings_group_{$settingsGroup}", '', $this->_Translation->GetTranslation('save'), $settingsGroup); // Display all pereferences of the actual group foreach ($settings as $setting) { // Load the current config and if it isn't available use the default $setting['value'] = $this->_Config->Get($setting['name'], $setting['default']); // Make it possible to define simple options lists if (substr($setting['datatype'], 0, 6) == 'array(') { $setting['data'] = explode(',', substr($setting['datatype'], 6, -1)); $setting['datatype'] = 'array'; } switch ($setting['datatype']) { // 'simple options list' case 'array': $formMaker->AddInput("settings_group_{$settingsGroup}", "setting_{$setting['name']}", 'select', $setting['display'], $setting['description']); // Add the possible values foreach ($setting['data'] as $option) { $formMaker->AddSelectEntry("settings_group_{$settingsGroup}", "setting_{$setting['name']}", $option == $setting['value'] ? true : false, $option, $option); } break; // The pages-tree // The pages-tree case 'page_select': $pageStructure = new Pagestructure($this->_SqlConnection, $this->_User, $this->_ComaLib); $pageStructure->LoadParentIDs(); $formMaker->AddInput("settings_group_{$settingsGroup}", "setting_{$setting['name']}", 'select', $setting['display'], $setting['description']); $formMaker->AddSelectEntrysCode("settings_group_{$settingsGroup}", "setting_{$setting['name']}", $pageStructure->PageStructurePulldown(0, 0, '', -1, $setting['default'])); break; // 'bool'-options-list // 'bool'-options-list case 'bool': $formMaker->AddInput("settings_group_{$settingsGroup}", "setting_{$setting['name']}", 'select', $setting['display'], $setting['description']); $formMaker->AddSelectEntry("settings_group_{$settingsGroup}", "setting_{$setting['name']}", $setting['value'] == 1 ? true : false, '1', $this->_Translation->GetTranslation('yes')); $formMaker->AddSelectEntry("settings_group_{$settingsGroup}", "setting_{$setting['name']}", $setting['value'] == 0 ? true : false, '0', $this->_Translation->GetTranslation('no')); break; // Every thing else // Every thing else default: $formMaker->AddInput("settings_group_{$settingsGroup}", "setting_{$setting['name']}", 'text', $setting['display'], $setting['description'], $setting['value']); break; } } } $formMaker->SetComaLateReplacement(&$this->_ComaLate, false); // Generate the template $template = "\r\n\t\t\t\t<form action=\"admin.php\" method=\"post\"><FORM_MAKER:loop>\n\t\t\t\t\t{fieldset_start}\n\t\t\t\t\t\t<hidden_inputs:loop><input type=\"hidden\" name=\"{name}\" value=\"{value}\" />\r\n\t\t\t\t\t\t</hidden_inputs>\n\t\t\t\t\t\t{fieldset_legend}\n\t\t\t\t\t\t<inputs:loop>\n\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t<label for=\"{name}\">\n\t\t\t\t\t\t\t\t\t<strong>{translation}:</strong>\n\t\t\t\t\t\t\t\t\t<errorinformation:loop><span class=\"error\">{errortext}</span>\n\t\t\t\t\t\t\t\t\t</errorinformation>\n\t\t\t\t\t\t\t\t\t<span class=\"info\">{information}</span>\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t{start_input} name=\"{name}\" id=\"{name}\" {end_input}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</inputs>\n\t\t\t\t\t\t{submit_button}\n\t\t\t\t\t{fieldset_end}\n\t\t\t\t</FORM_MAKER>\n\t\t\t\t</form>"; return $template; }