예제 #1
0
 function admin_menu_new()
 {
     global $langmessage, $page, $config;
     $page->ajaxReplace = array();
     $page->css_admin[] = '/include/css/admin_menu_new.css';
     $page->head_js[] = '/include/thirdparty/js/nestedSortable.js';
     $page->head_js[] = '/include/thirdparty/js/jquery_cookie.js';
     $page->head_js[] = '/include/js/admin_menu_new.js';
     $this->max_level_index = max(3, gp_max_menu_level - 1);
     $page->head_script .= 'var max_level_index = ' . $this->max_level_index . ';';
     $cmd = common::GetCommand();
     $this->avail_menus['gpmenu'] = $langmessage['Main Menu'];
     $this->avail_menus['all'] = $langmessage['All Pages'];
     $this->avail_menus['hidden'] = $langmessage['Not In Main Menu'];
     $this->avail_menus['nomenus'] = $langmessage['Not In Any Menus'];
     $this->avail_menus['search'] = $langmessage['search pages'];
     if (isset($config['menus'])) {
         foreach ($config['menus'] as $id => $menu_label) {
             $this->avail_menus[$id] = $menu_label;
         }
     }
     //early commands
     switch ($cmd) {
         case 'altmenu_create':
             $this->AltMenu_Create();
             break;
         case 'rm_menu':
             $this->AltMenu_Remove();
             break;
         case 'alt_menu_rename':
             $this->AltMenu_Rename();
             break;
     }
     //read cookie settings
     if (isset($_COOKIE['gp_menu_prefs'])) {
         parse_str($_COOKIE['gp_menu_prefs'], $this->cookie_settings);
     }
     $this->SetMenuID();
     $this->SetMenuArray();
     $this->SetCollapseSettings();
     $this->SetQueryInfo();
     $cmd_after = gpPlugin::Filter('MenuCommand', array($cmd));
     if ($cmd !== $cmd_after) {
         $cmd = $cmd_after;
         if ($cmd === 'return') {
             return;
         }
     }
     switch ($cmd) {
         case 'rename_menu_prompt':
             $this->RenameMenuPrompt();
             return;
             //menu creation
         //menu creation
         case 'newmenu':
             $this->NewMenu();
             return;
             //rename
         //rename
         case 'renameform':
             $this->RenameForm();
             //will die()
             return;
         case 'renameit':
             $this->RenameFile();
             break;
         case 'hide':
             $this->Hide();
             break;
         case 'drag':
             $this->SaveDrag();
             break;
         case 'trash_page':
         case 'trash':
             $this->MoveToTrash($cmd);
             break;
         case 'add_hidden':
             $this->AddHidden();
             return;
         case 'new_hidden':
             $this->NewHiddenFile();
             break;
         case 'new_redir':
             $this->NewHiddenFile_Redir();
             return;
         case 'copyit':
             $this->CopyPage();
             break;
         case 'copypage':
             $this->CopyForm();
             return;
             // Page Insertion
         // Page Insertion
         case 'insert_before':
         case 'insert_after':
         case 'insert_child':
             $this->InsertDialog($cmd);
             return;
         case 'restore':
             $this->RestoreFromTrash();
             break;
         case 'insert_from_hidden':
             $this->InsertFromHidden();
             break;
         case 'new_file':
             $this->NewFile();
             break;
             //layout
         //layout
         case 'layout':
         case 'uselayout':
         case 'restorelayout':
             includeFile('tool/Page_Layout.php');
             $page_layout = new page_layout($cmd, 'Admin_Menu', $this->query_string);
             if ($page_layout->result()) {
                 return;
             }
             break;
             //external links
         //external links
         case 'new_external':
             $this->NewExternal();
             break;
         case 'edit_external':
             $this->EditExternal();
             return;
         case 'save_external':
             $this->SaveExternal();
             break;
     }
     $this->ShowForm($cmd);
 }