diff --git a/e107_admin/menus.php b/e107_admin/menus.php index 45e8ae2ba..63ad7afea 100644 --- a/e107_admin/menus.php +++ b/e107_admin/menus.php @@ -11,8 +11,8 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_admin/menus.php,v $ -| $Revision: 1.2 $ -| $Date: 2007-02-04 22:00:00 $ +| $Revision: 1.3 $ +| $Date: 2007-02-10 13:36:20 $ | $Author: e107steved $ +----------------------------------------------------------------------------+ */ @@ -118,11 +118,16 @@ if($_POST['menuActivate']) } // ============= -foreach ($_POST['menuAct'] as $k => $v) { - if (trim($v)) { - $id = $k; - list($menu_act, $location, $position, $newloc) = explode(".", $_POST['menuAct'][$k]); +if (isset($_POST['menuAct'])) +{ + foreach ($_POST['menuAct'] as $k => $v) + { + if (trim($v)) + { + $id = $k; + list($menu_act, $location, $position, $newloc) = explode(".", $_POST['menuAct'][$k]); } + } } if ($menu_act == 'config') { @@ -224,29 +229,40 @@ if ($menu_act == "inc") { } if (strpos(e_QUERY, 'configure') === FALSE) -{ +{ // Scan plugin directories to see if menus to add $efile = new e_file; $fileList = $efile->get_files(e_PLUGIN,"_menu\.php$",'standard',2); - foreach($fileList as $file) { - list($parent_dir) = explode('/',str_replace(e_PLUGIN,"",$file['path'])); - $file['path'] = str_replace(e_PLUGIN,"",$file['path']); - $file['fname'] = str_replace(".php","",$file['fname']); - if (!$sql->db_Count("menus", "(*)", "WHERE menu_name='{$file['fname']}'")) { - if (file_exists(e_PLUGIN.$parent_dir."/plugin.php")) { - include(e_PLUGIN.$parent_dir."/plugin.php"); - if ($sql->db_Select("plugin", "*", "plugin_path='".$eplug_folder."' AND plugin_installflag='1' ")) { - $sql->db_Insert("menus", " 0, '{$file['fname']}', 0, 0, 0, '' ,'{$file['path']}'"); - $message .= "".MENLAN_10." - ".$file['fname']."
"; - } - } else { - $sql->db_Insert("menus", " 0, '{$file['fname']}', 0, 0, 0, '' ,'{$file['path']}'"); - $message .= "".MENLAN_10." - ".$file['fname']."
"; - } + foreach($fileList as $file) + { + list($parent_dir) = explode('/',str_replace(e_PLUGIN,"",$file['path'])); + $file['path'] = str_replace(e_PLUGIN,"",$file['path']); + $file['fname'] = str_replace(".php","",$file['fname']); + $valid_menu = FALSE; + $existing_menu = $sql->db_Count("menus", "(*)", "WHERE menu_name='{$file['fname']}'"); + if (file_exists(e_PLUGIN.$parent_dir."/plugin.php")) + { + include(e_PLUGIN.$parent_dir."/plugin.php"); + if ($sql->db_Select("plugin", "*", "plugin_path='".$eplug_folder."' AND plugin_installflag='1' ")) + { // Its a 'new style' plugin with a plugin.php file - ionly include if plugin installed + $valid_menu = TRUE; // Whether new or existing, include in list } - $menustr .= "&".str_replace(".php", "", $file['fname']); + } + else + { // Just add the menu anyway + $valid_menu = TRUE; + } + if ($valid_menu) + { + $menustr .= "&".str_replace(".php", "", $file['fname']); + if (!$existing_menu) + { // New menu to add to list + $sql->db_Insert("menus", " 0, '{$file['fname']}', 0, 0, 0, '' ,'{$file['path']}'"); + $message .= "".MENLAN_10." - ".$file['fname']."
"; + } + } } -$sql2 = new db; +if (!is_object($sql2)) $sql2 = new db; // Shouldn't be needed foreach ($menu_areas as $menu_act) { if ($sql->db_Select("menus", "*", "menu_location='$menu_act' ORDER BY menu_order ASC")) { $c = 1;