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