A lot has been rewritten, ext-teams added, ext-forced continued:
[mailer.git] / inc / modules / admin / what-repair_amnu.php
index 639ddf2676cb73d578cb1378c0d4dd791c304fba..fc3837760137ed4b82213e9d0583ece8eb2f130e 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 02/25/2004 *
- * ================                             Last change: 02/25/2004 *
+ * Mailer v0.2.1-FINAL                                Start: 02/25/2004 *
+ * ===================                          Last change: 02/25/2004 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : what-repair_amenu.php                            *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Menuegewichtigung reparieren                     *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  ************************************************************************/
 
 // Some security stuff...
-if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
-{
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
-       require($INC);
-}
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+       die();
+} // END - if
+
 // Add description as navigation point
-ADD_DESCR("admin", basename(__FILE__));
+addYouAreHereLink('admin', __FILE__);
+
+$actions = array();
 
-global $link;
-$ACTIONs = array();
-// First fix all main menus (what='')...
-$result_fix = SQL_QUERY("SELECT id, action FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' AND action != 'logout' ORDER BY sort ASC", __FILE__, __LINE__);
-$cnt = 0; $REP = 0;
-while(list($id, $act) = SQL_FETCHROW($result_fix))
-{
-       // Store action value for later usage in sorting sub menus
-       $ACTIONs[] = $act;
+// First fix all main menus (what = '')...
+$result_fix = SQL_QUERY("SELECT `id`,`action` FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE (`what`='' OR `what` IS NULL) AND `action` != 'logout' ORDER BY `sort` ASC", __FILE__, __LINE__);
+$count = '0'; $repairedWeights = '0';
+while ($content = SQL_FETCHARRAY($result_fix)) {
+       // Store act value for later usage in sorting sub menus
+       $actions[] = $content['action'];
 
        // Fix weight
-       $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='%s' WHERE id=%d LIMIT 1",
-        array($cnt, bigintval($id)), __FILE__, __LINE__);
-       $REP += SQL_AFFECTEDROWS();
+       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET sort=%s WHERE `id`=%s LIMIT 1",
+               array($count, $content['id']), __FILE__, __LINE__);
+       $repairedWeights += SQL_AFFECTEDROWS();
 
        // Count one up
-       $cnt++;
-}
-
-// Free memory
-SQL_FREERESULT($result_fix);
+       $count++;
+} // END - while
 
 // Set logout weight to 999
-$result_sort = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='999' WHERE action='logout' AND what='' LIMIT 1", __FILE__, __LINE__);
+SQL_QUERY("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `sort`='999' WHERE `action`='logout' AND (`what`='' OR `what` IS NULL) LIMIT 1", __FILE__, __LINE__);
 
 // Now sort every each menu
-foreach ($ACTIONs as $act)
-{
-       $result_fix = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND what != '' ORDER BY sort",
-        array($act), __FILE__, __LINE__);
-       $cnt = 1;
-       while (list($id) = SQL_FETCHROW($result_fix))
-       {
+foreach ($actions as $action) {
+       $result_fix = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='%s' AND `what` != '' AND `what` IS NOT NULL ORDER BY `sort` ASC",
+               array($action), __FILE__, __LINE__);
+       $count = 1;
+       while ($content = SQL_FETCHARRAY($result_fix)) {
                // Fix weight
-               $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='%s' WHERE id=%d LIMIT 1",
-                array($cnt, bigintval($id)), __FILE__, __LINE__);
-               $REP += SQL_AFFECTEDROWS();
+               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `sort`=%s WHERE `id`=%s LIMIT 1",
+                       array($count, $content['id']), __FILE__, __LINE__);
+               $repairedWeights += SQL_AFFECTEDROWS();
 
                // Count one up
-               $cnt++;
-       }
+               $count++;
+       } // END - while
+} // END - foreach
 
-       // Free memory
-       SQL_FREERESULT($result_fix);
+// Repair finished
+if ($repairedWeights > 0) {
+       $message = '{%message,ADMIN_REPAIR_ENTRIES_FIXED=' . $repairedWeights . '%}';
+} else {
+       $message = '{--ADMIN_REPAIR_NOTHING_FIXED--}';
 }
 
-// Repair finished
-LOAD_TEMPLATE("admin_settings_saved", false, "<FONT class=\"admin_done\">".ADMIN_REPAIR_ENTRIES_FIXED_1.$REP.ADMIN_REPAIR_ENTRIES_FIXED_2."</FONT>");
+// Output message
+displayMessage($message);
 
-//
+// [EOF]
 ?>