(no commit message)
[mailer.git] / 0.2.1 / inc / modules / admin / what-adminedit.php
1 <?php\r
2 /************************************************************************\r
3  * MXChange v0.2.1                                    Start: 09/05/2003 *\r
4  * ===============                              Last change: 12/13/2004 *\r
5  *                                                                      *\r
6  * -------------------------------------------------------------------- *\r
7  * File              : what-adminedit.php                               *\r
8  * -------------------------------------------------------------------- *\r
9  * Short description : Edit the admin menu                              *\r
10  * -------------------------------------------------------------------- *\r
11  * Kurzbeschreibung  : Das Admin-MenĂ¼ editieren                         *\r
12  * -------------------------------------------------------------------- *\r
13  *                                                                      *\r
14  * -------------------------------------------------------------------- *\r
15  * Copyright (c) 2003 - 2007 by Roland Haeder                           *\r
16  * For more information visit: http://www.mxchange.org                  *\r
17  *                                                                      *\r
18  * This program is free software; you can redistribute it and/or modify *\r
19  * it under the terms of the GNU General Public License as published by *\r
20  * the Free Software Foundation; either version 2 of the License, or    *\r
21  * (at your option) any later version.                                  *\r
22  *                                                                      *\r
23  * This program is distributed in the hope that it will be useful,      *\r
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *\r
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *\r
26  * GNU General Public License for more details.                         *\r
27  *                                                                      *\r
28  * You should have received a copy of the GNU General Public License    *\r
29  * along with this program; if not, write to the Free Software          *\r
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *\r
31  * MA  02110-1301  USA                                                  *\r
32  ************************************************************************/\r
33 \r
34 // Some security stuff...\r
35 if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))\r
36 {\r
37         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4)."/security.php";\r
38         require($INC);\r
39 }\r
40 // Add description as navigation point\r
41 ADD_DESCR("admin", basename(__FILE__));\r
42 \r
43 // Do we edit/delete/change main menus or sub menus?\r
44 $AND = "what=''"; $SUB = "";\r
45 if (!empty($_GET['sub']))\r
46 {\r
47         $AND = sprintf("action='%s'", SQL_ESCAPE($_GET['sub']));\r
48         $SUB = SQL_ESCAPE($_GET['sub']);\r
49 }\r
50 \r
51 // Get count of (maybe) selected menu points\r
52 $chk = 0;\r
53 if (!empty($_POST['sel'])) $chk = SELECTION_COUNT($_POST['sel']);\r
54 \r
55 OPEN_TABLE("100%", "admin_content admin_content_align", "");\r
56 \r
57 // List all menu points and make them editable\r
58 OUTPUT_HTML ("<BR><BR></FONT>\r
59 <DIV align=\"center\">");\r
60 if ((isset($_POST['edit'])) && ($chk > 0) && (!IS_DEMO()))\r
61 {\r
62         // Edit menu entries\r
63         define('__SUB_VALUE', $SUB);\r
64         define('__CHK_VALUE', $chk);\r
65         $cnt = 0; $SW = 2;\r
66         foreach ($_POST['sel'] as $sel=>$confirm)\r
67         {\r
68                 if ($confirm == 1)\r
69                 {\r
70                         $cnt++;\r
71                         $result = SQL_QUERY_ESC("SELECT title, action, what, descr FROM "._MYSQL_PREFIX."_admin_menu WHERE ".$AND." AND id=%d LIMIT 1",\r
72                          array(bigintval($sel)), __FILE__, __LINE__);\r
73                         if (SQL_NUMROWS($result) == 1)\r
74                         {\r
75                                 // Entry found so we load the stuff...\r
76                                 list($menu, $act, $wht, $descr) = SQL_FETCHROW($result);\r
77                                 SQL_FREERESULT($result);\r
78 \r
79                                 // Prepare data for the row template\r
80                                 $content = array(\r
81                                         'action' => ADMIN_MAKE_MENU_SELECTION("admin", "action", "sel_action[".$sel."]", $act),\r
82                                         'what'   => ADMIN_MAKE_MENU_SELECTION("admin", "what", "sel_what[".$sel."]", $wht),\r
83                                         'sw'     => $SW,\r
84                                         'sel'    => $sel,\r
85                                         'menu'   => $menu,\r
86                                         'descr'  => $descr,\r
87                                         'cnt'    => $cnt,\r
88                                 );\r
89                                 $OUT .= LOAD_TEMPLATE("admin_amenu_edit_row", true, $content);\r
90                         }\r
91                          else\r
92                         {\r
93                                 // Entry not found?\r
94                                 $content = array(\r
95                                         'sw'  => $SW,\r
96                                         'sel' => $sel\r
97                                 );\r
98                                 $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);\r
99                         }\r
100                         $SW = 3 - $SW;\r
101                 }\r
102         }\r
103         define('__MENU_ROWS', $OUT);\r
104         define('__CNT_VALUE', $cnt);\r
105 \r
106         // Load template\r
107         LOAD_TEMPLATE("admin_amenu_edit_form");\r
108 }\r
109  elseif ((isset($_POST['del'])) && (!IS_DEMO()))\r
110 {\r
111         define('__SUB_VALUE', $SUB);\r
112         define('__CHK_VALUE', $chk);\r
113         // Del menu entries with or without confirmation\r
114         $SW = 2; $cnt = 0; $OUT = "";\r
115         foreach ($_POST['sel'] as $sel=>$confirm)\r
116         {\r
117                 if ($confirm == 1)\r
118                 {\r
119                         $cnt++;\r
120                         $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_admin_menu WHERE ".$AND." AND id=%d LIMIT 1",\r
121                          array(bigintval($sel)), __FILE__, __LINE__);\r
122                         if (SQL_NUMROWS($result) == 1)\r
123                         {\r
124                                 // Entry found so we load the stuff...\r
125                                 list($menu) = SQL_FETCHROW($result);\r
126                                 SQL_FREERESULT($result);\r
127 \r
128                                 // Prepare data for the row template\r
129                                 $content = array(\r
130                                         'menu' => $menu,\r
131                                         'cnt'  => $cnt,\r
132                                         'sel'  => $sel,\r
133                                         'sw'   => $SW\r
134                                 );\r
135                                 $OUT .= LOAD_TEMPLATE("admin_amenu_delete_row", true, $content);\r
136                         }\r
137                          else\r
138                         {\r
139                                 // Entry not found?\r
140                                 $content = array(\r
141                                         'sw'  => $SW,\r
142                                         'sel' => $sel\r
143                                 );\r
144                                 $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);\r
145                         }\r
146                         $SW = 3 - $SW;\r
147                 }\r
148         }\r
149         define('__MENU_ROWS', $OUT);\r
150         define('__CNT_VALUE', $cnt);\r
151 \r
152         // Load template\r
153         LOAD_TEMPLATE("admin_amenu_delete");\r
154 }\r
155  elseif ((isset($_POST['ok'])) && (!IS_DEMO()))\r
156 {\r
157         // An action is done...\r
158         switch ($_POST['ok'])\r
159         {\r
160         case "edit": // Edit menu\r
161                 foreach ($_POST['sel'] as $sel=>$menu)\r
162                 {\r
163                         // Secure ID\r
164                         $sel = bigintval($sel);\r
165 \r
166                         // Update entry\r
167                         $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET\r
168 title='%s',\r
169 action='%s',\r
170 what='%s',\r
171 descr='%s'\r
172 WHERE ".$AND." AND id=%d LIMIT 1",\r
173  array(\r
174         $menu,\r
175         $_POST['sel_action'][$sel],\r
176         $_POST['sel_what'][$sel],\r
177         addslashes($_POST['sel_desc'][$sel]),\r
178         $sel,\r
179 ), __FILE__, __LINE__);\r
180                 }\r
181                 LOAD_TEMPLATE("admin_data_saved");\r
182                 break;\r
183 \r
184         case "del": // Delete menu\r
185                 foreach ($_POST['sel'] as $sel=>$menu)\r
186                 {\r
187                         $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE ".$AND." AND id=%d LIMIT 1",\r
188                          array(bigintval($sel)), __FILE__, __LINE__);\r
189                 }\r
190                 LOAD_TEMPLATE("admin_data_saved");\r
191                 break;\r
192 \r
193         default: // Unexpected action\r
194                 define('__OK_VALUE', $_POST['ok']);\r
195                 LOAD_TEMPLATE("admin_menu_unknown_okay");\r
196                 break;\r
197         }\r
198 }\r
199  else\r
200 {\r
201         if ((!empty($_GET['act'])) && (!empty($_GET['tid'])) && (!empty($_GET['fid'])))\r
202         {\r
203                 // Get IDs\r
204                 if (!empty($_GET['w']))\r
205                 {\r
206                         // Sub menus selected\r
207                         $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND sort='%s' LIMIT 1",\r
208                          array($_GET['act'], bigintval($_GET['tid'])), __FILE__, __LINE__);\r
209                         list($tid) = SQL_FETCHROW($result);\r
210                         SQL_FREERESULT($result);\r
211                         $result = SQL_QUERY("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND sort='%s' LIMIT 1",\r
212                          array($_GET['act'], bigintval($_GET['fid'])), __FILE__, __LINE__);\r
213                         list($fid) = SQL_FETCHROW($result);\r
214                         SQL_FREERESULT($result);\r
215                 }\r
216                  else\r
217                 {\r
218                         // Main menu selected\r
219                         $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' AND sort='%s' LIMIT 1",\r
220                          array(bigintval($_GET['tid'])), __FILE__, __LINE__);\r
221                         list($tid) = SQL_FETCHROW($result);\r
222                         SQL_FREERESULT($result);\r
223                         $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' AND sort='%s' LIMIT 1",\r
224                          array(bigintval($_GET['fid'])), __FILE__, __LINE__);\r
225                         list($fid) = SQL_FETCHROW($result);\r
226                         SQL_FREERESULT($result);\r
227                 }\r
228 \r
229                 if ((!empty($tid)) && (!empty($fid)))\r
230                 {\r
231                         // Sort menu\r
232                         $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",\r
233                          array(bigintval($_GET['tid']), bigintval($fid)), __FILE__, __LINE__);\r
234                         $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admin_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",\r
235                          array(bigintval($_GET['fid']), bigintval($tid)), __FILE__, __LINE__);\r
236                 }\r
237         }\r
238 \r
239         // By default list menus\r
240         if (!empty($SUB))\r
241         {\r
242                 // Sub menus of a main menu\r
243                 $result = SQL_QUERY_ESC("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND what != '' ORDER BY sort ASC",\r
244                  array($SUB), __FILE__, __LINE__);\r
245         }\r
246          else\r
247         {\r
248                 // Main menus\r
249                 $result = SQL_QUERY("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' ORDER BY sort ASC", __FILE__, __LINE__);\r
250         }\r
251         $max = SQL_NUMROWS($result);\r
252         if ($max > 0)\r
253         {\r
254                 define('__SUB_VALUE', $SUB);\r
255                 $SW = 2; $cnt = 0; $OUT = "";\r
256                 while (list($id, $act, $wht, $title, $sort) = SQL_FETCHROW($result))\r
257                 {\r
258                         $cnt++;\r
259                         if (($sort == 0) || (($sort == 1) && (!empty($SUB))))\r
260                         {\r
261                                 // Is highest position\r
262                                 $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=adminedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";\r
263                         }\r
264                          elseif ($cnt == $max)\r
265                         {\r
266                                 // Is lowest position\r
267                                 $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=adminedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>";\r
268                         }\r
269                          elseif ($sort > 0)\r
270                         {\r
271                                 // Anything else between highest and lowest\r
272                                 $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=adminedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>/<A href=\"".URL."/modules.php?module=admin&amp;what=adminedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";\r
273                         }\r
274 \r
275                         if (empty($act)) $act = "&nbsp;";\r
276                         if (empty($wht))   $wht   = "&nbsp;";\r
277                         if (empty($title))  $title  = "&nbsp;";\r
278 \r
279                         $content = array(\r
280                                 'sw'     => $SW,\r
281                                 'id'     => $id,\r
282                                 'action' => $act,\r
283                                 'what'   => $wht,\r
284                                 'title'  => $title,\r
285                                 'navi'   => $NAVI,\r
286                                 'mode'   => "admin",\r
287                         );\r
288                         $OUT .= LOAD_TEMPLATE("admin_menu_overview_row", true, $content);\r
289                         $SW = 3 - $SW;\r
290                 }\r
291 \r
292                 // Free memory\r
293                 SQL_FREERESULT($result);\r
294                 define('__MENU_ROWS', $OUT);\r
295 \r
296                 // Load template\r
297                 LOAD_TEMPLATE("admin_amenu_edit");\r
298         }\r
299          else\r
300         {\r
301                 // Menu entries are missing... (???)\r
302                 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_MENUS_FOUND);\r
303         }\r
304 }\r
305 OUTPUT_HTML ("</DIV>");\r
306 CLOSE_TABLE();\r
307 //\r
308 ?>\r