예제 #1
0
 /**
  * Returns a formular to edit any errors if there are any or set the user back to showmenu page
  * @access private
  * @return string A template for a formular to edit the errors
  */
 function _CheckMenuEntry()
 {
     // Get external parameters
     $MenuID = GetPostOrGet('menu_id');
     $MenuEntryID = GetPostOrGet('menu_entry_id');
     $MenuEntryType = GetPostOrGet('menu_entry_type');
     $MenuEntryTitle = GetPostOrGet('menu_entry_title');
     $MenuEntryLink = GetPostOrGet('menu_entry_link');
     $MenuEntryCssID = GetPostOrGet('menu_entry_css_id');
     // Initialize the formmaker class
     $formMaker = new FormMaker($this->_Translation->GetTranslation('todo'), &$this->_SqlConnection);
     $formMaker->AddForm('check_menu_entry', 'admin.php', $this->_Translation->GetTranslation('save'), $this->_Translation->GetTranslation('add_menu_entry'), 'post');
     // Add hidden inputs to give some variables to next page
     $formMaker->AddHiddenInput('check_menu_entry', 'page', 'menueditor');
     $formMaker->AddHiddenInput('check_menu_entry', 'action', 'add_menu_entry');
     $formMaker->AddHiddenInput('check_menu_entry', 'menu_entry_type', $MenuEntryType);
     // Add the inputs to the formmakerclass
     $formMaker->AddInput('check_menu_entry', 'menu_id', 'select', $this->_Translation->GetTranslation('belongs_to_menu'), $this->_Translation->GetTranslation('this_is_the_menu_the_new_entry_should_be_added_to'));
     // Get the existing menus from the database
     $sql = "SELECT *\n\t\t\t\t\tFROM " . DB_PREFIX . "menu";
     $menuResult = $this->_SqlConnection->SqlQuery($sql);
     while ($menu = mysql_fetch_object($menuResult)) {
         // Add an entry for each existing menu
         $formMaker->AddSelectEntry('check_menu_entry', 'menu_id', $menu->menu_id == $MenuID ? true : false, $menu->menu_id, $menu->menu_id . ". " . $menu->menu_name);
     }
     $formMaker->AddInput('check_menu_entry', 'menu_entry_title', 'text', $this->_Translation->GetTranslation('menu_entry_title'), $this->_Translation->GetTranslation('this_is_the_title_of_the_menuentry_that_will_be_shown_in_the_menu'), $MenuEntryTitle);
     $formMaker->AddCheck('check_menu_entry', 'menu_entry_title', 'empty', $this->_Translation->GetTranslation('you_have_to_define_a_title_for_the_menu_entry'));
     if ($MenuEntryType == 'intern_link') {
         // Add select input for all pages in the system
         $formMaker->AddInput('check_menu_entry', 'menu_entry_link', 'select', $this->_Translation->GetTranslation('menu_entry_link'), $this->_Translation->GetTranslation('choose_here_the_page_to_which_the_link_should_refer'));
         // Add all existing pages to the select
         $pageStructure = new Pagestructure(&$this->_SqlConnection, &$this->_User, &$this->_ComaLib);
         $pageStructure->LoadParentIDs();
         $formMaker->AddSelectEntrysCode('check_menu_entry', 'menu_entry_link', $pageStructure->PageStructurePulldown(0, 0, '', -1, $MenuEntryLink));
     } elseif ($MenuEntryType == 'extern_link') {
         // Add input for the extern url
         $formMaker->AddInput('check_menu_entry', 'menu_entry_link', 'text', $this->_Translation->GetTranslation('menu_entry_link'), $this->_Translation->GetTranslation('type_here_the_url_of_the_page_to_link_to'), $MenuEntryLink);
         $formMaker->AddCheck('check_menu_entry', 'menu_entry_link', 'empty', $this->_Translation->GetTranslation('you_have_to_define_an_extern_url_for_this_link'));
     } elseif ($MenuEntryType == 'download') {
         // Add select input for the downloads
         $formMaker->AddInput('check_menu_entry', 'menu_entry_link', 'select', $this->_Translation->GetTranslation('download'), $this->_Translation->GetTranslation('choose_here_the_download_you_want_to_link_to'));
         // Add all existing files to the select input
         $sql = "SELECT *\n\t\t\t\t\t\tFROM " . DB_PREFIX . "files\n\t\t\t\t\t\tORDER BY file_name";
         $files_result = $this->_SqlConnection->SqlQuery($sql);
         while ($file = mysql_fetch_object($files_result)) {
             if (file_exists($file->file_path)) {
                 $formMaker->AddSelectEntry('check_menu_entry', 'menu_entry_link', $MenuEntryLink == $file->file_id ? true : false, $file->file_id, utf8_encode($file->file_name) . " (" . kbormb($file->file_size) . ")");
             }
         }
     }
     $formMaker->AddInput('check_menu_entry', 'menu_entry_css_id', 'text', $this->_Translation->GetTranslation('menu_entry_css'), $this->_Translation->GetTranslation('type_in_here_the_css_id_for_the_menuentry_if_you_need_one_for_it'));
     if ($formMaker->CheckInputs('check_menu_entry', true)) {
         if ($MenuEntryType == 'intern_link') {
             // Get the name of the page
             $sql = "SELECT *\n\t\t \t\t\t\tFROM " . DB_PREFIX . "pages\n\t \t\t\t\t\tWHERE page_id='{$MenuEntryLink}'";
             $pageResult = $this->_SqlConnection->SqlQuery($sql);
             if ($page = mysql_fetch_object($pageResult)) {
                 $PageID = $MenuEntryLink;
                 $MenuEntryLink = $page->page_name;
             }
         } else {
             $PageID = '';
         }
         // Add new user to the database
         $sql = "UPDATE " . DB_PREFIX . "menu_entries\n\t\t\t\t\t\tSET menu_entries_link='" . ($MenuEntryType == 'intern_link' ? 'l:' : ($MenuEntryType == 'download' ? 'd:' : ($MenuEntryType == 'extern_link' ? 'e:' : ''))) . "{$MenuEntryLink}', \n\t\t\t\t\t\t\tmenu_entries_title='{$MenuEntryTitle}', \n\t\t\t\t\t\t\tmenu_entries_type='{$MenuEntryType}', \n\t\t\t\t\t\t\tmenu_entries_css_id='{$MenuEntryCssID}', \n\t\t\t\t\t\t\tmenu_entries_menuid='{$MenuID}', \n\t\t\t\t\t\t\tmenu_entries_page_id='{$PageID}'\n\t\t\t\t\t\tWHERE menu_entries_id='{$MenuEntryID}'";
         $this->_SqlConnection->SqlQuery($sql);
         // Set user to the HomePage of the usermanager
         $template = "\r\n\t\t\t\t" . $this->_ShowMenu($MenuID);
         return $template;
     } else {
         // Generate to edit the errors
         $template = "\r\n\t\t\t\t" . $formMaker->GenerateMultiFormTemplate(&$this->_ComaLate, true);
         return $template;
     }
 }
 /**
  * @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;
 }