diff --git a/e107_admin/menus.php b/e107_admin/menus.php index 267c005cb..483416831 100644 --- a/e107_admin/menus.php +++ b/e107_admin/menus.php @@ -11,9 +11,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_admin/menus.php,v $ -| $Revision: 1.4 $ -| $Date: 2007-03-06 19:59:27 $ -| $Author: e107steved $ +| $Revision: 1.5 $ +| $Date: 2007-11-18 02:20:59 $ +| $Author: mcfly_e107 $ +----------------------------------------------------------------------------+ */ require_once("../class2.php"); @@ -27,7 +27,10 @@ require_once(e_HANDLER."form_handler.php"); require_once(e_HANDLER."file_class.php"); $frm = new form; -if($_POST) { +if($_POST) +{ + print_a($_POST); +// exit; $e107cache->clear("menus_"); } @@ -118,12 +121,26 @@ if($_POST['menuActivate']) } } - $menu_count = $sql->db_Count("menus", "(*)", " WHERE menu_location='$location' "); + $menu_count = $sql->db_Count("menus", "(*)", " WHERE menu_location=".$location); foreach($_POST['menuselect'] as $sel_mens) { - $sql->db_Update("menus", "menu_location='$location', menu_order='".($menu_count+1)."' WHERE menu_id='$sel_mens' "); - $menu_count++; + //Get info from menu being activated + if($sql->db_Select("menus", 'menu_name, menu_path' , 'menu_id = '.$sel_mens)) + { + $row=$sql->db_Fetch(); + //If menu is not already activated in that area, add the record. + if(!$sql->db_Select('menus', 'menu_id', "menu_name='{$row['menu_name']}' AND menu_location = $location")) + { + $qry = " + INSERT into #menus + (`menu_name`, `menu_location`, `menu_order`, `menu_path`) + VALUES ('{$row['menu_name']}', {$location}, {$menu_count}, '{$row['menu_path']}') + "; + $sql->db_Select_gen($qry); + $menu_count++; + } + } } } // ============= @@ -207,14 +224,39 @@ if ($menu_act == "sv") { } if ($menu_act == "move") { - $menu_count = $sql->db_Count("menus", "(*)", " WHERE menu_location='$newloc' "); - $sql->db_Update("menus", "menu_location='$newloc', menu_order='".($menu_count+1)."' WHERE menu_id='$id' "); - $sql->db_Update("menus", "menu_order=menu_order-1 WHERE menu_location='$location' AND menu_order > $position"); + // Get current menu name + if($sql->db_Select('menus', 'menu_name', 'menu_id='.$id, 'default')) + { + $row = $sql->db_Fetch(); + //Check to see if menu is already active in the new area, if not then move it + if(!$sql->db_Select('menus', 'menu_id', "menu_name='{$row['menu_name']}' AND menu_location = ".$newloc)) + { + $menu_count = $sql->db_Count("menus", "(*)", " WHERE menu_location=".$newloc); + $sql->db_Update("menus", "menu_location='$newloc', menu_order=".($menu_count+1)." WHERE menu_id=".$id); + $sql->db_Update("menus", "menu_order=menu_order-1 WHERE menu_location='$location' AND menu_order > $position"); + } + } } if ($menu_act == "deac") { - $sql->db_Update("menus", "menu_location='0', menu_order='0' WHERE menu_id='$id' "); - $sql->db_Update("menus", "menu_order=menu_order-1 WHERE menu_location='$location' AND menu_order > $position"); + // Get current menu name + if($sql->db_Select('menus', 'menu_name', 'menu_id='.$id, 'default')) + { + $row = $sql->db_Fetch(); + //Check to see if there is already a menu with location = 0 (to maintain BC) + if($sql->db_Select('menus', 'menu_id', "menu_name='{$row['menu_name']}' AND menu_location = 0")) + { + //menu_location=0 already exists, we can just delete this record + $sql->db_Delete('menus', 'menu_id='.$id); + } + else + { + //menu_location=0 does NOT exist, let's just convert this to it + $sql->db_Update("menus", "menu_location=0, menu_order=0, menu_class=0, menu_pages='' WHERE menu_id=".$id); + } + //Move all other menus up + $sql->db_Update("menus", "menu_order=menu_order-1 WHERE menu_location={$location} AND menu_order > $position"); + } } if ($menu_act == "bot") { @@ -376,29 +418,29 @@ else echo $frm->form_open("post", e_SELF."?configure.".$menus_equery[1], "menuActivation"); $text = ""; - $sql->db_Select("menus", "*", "menu_location='0' ORDER BY menu_name "); + $sql->db_Select("menus", "menu_name, menu_id, menu_pages", "1 GROUP BY menu_name ORDER BY menu_name ASC"); $text .= ""; $text .= "";
".MENLAN_36."......".MENLAN_37."
"; $text .= ""; $text .= "

".MENLAN_38.""; $text .= "

"; - foreach ($menu_areas as $menu_act) { + foreach ($menu_areas as $menu_act) + { $text .= "

\n"; } $text .= "