/**
  * @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;
 }