예제 #1
0
 /**
  * Create an alternate menu
  *
  */
 public function NewMenuCreate()
 {
     global $config, $langmessage, $dataDir;
     $menu_name = $this->AltMenu_NewName();
     if (!$menu_name) {
         return;
     }
     $new_menu = \gp\admin\Menu\Tools::AltMenu_New();
     //get next index
     $index = 0;
     if (isset($config['menus']) && is_array($config['menus'])) {
         foreach ($config['menus'] as $id => $label) {
             $id = substr($id, 1);
             $index = max($index, $id);
         }
     }
     $index++;
     $id = 'm' . $index;
     $menu_file = $dataDir . '/data/_menus/' . $id . '.php';
     if (!\gp\tool\Files::SaveData($menu_file, 'menu', $new_menu)) {
         msg($langmessage['OOPS'] . ' (Menu Not Saved)');
         return false;
     }
     $config['menus'][$id] = $menu_name;
     if (\gp\admin\Tools::SaveConfig(true)) {
         $url = \gp\tool::GetUrl('Admin/Menu', 'menu=' . $id, false);
         \gp\tool::Redirect($url);
     }
 }
예제 #2
0
 /**
  * Check the curr_menu_array
  * 	Remove missing titles
  *	Fill with new array if empty
  *
  */
 private function CurrMenuArray()
 {
     global $gp_titles;
     $menu_adjustments = false;
     $array = array();
     //get array of titles and levels
     foreach ($this->curr_menu_array as $key => $info) {
         if (!isset($info['level'])) {
             break;
         }
         //remove deleted titles
         if (!isset($gp_titles[$key]) && !isset($info['url'])) {
             $menu_adjustments = true;
             continue;
         }
         $array[$key] = $info;
     }
     //if the menu is empty (because all the files in it were deleted elsewhere), recreate it with the home page
     if (count($array) == 0) {
         $array = \gp\admin\Menu\Tools::AltMenu_New();
         $menu_adjustments = true;
     }
     if ($menu_adjustments) {
         $this->curr_menu_array = $array;
         $this->SaveMenu(false);
     }
     return $array;
 }