List active/inactive extensions
[mailer.git] / 0.2.1 / inc / modules / admin / what-memedit.php
1 <?php\r
2 /************************************************************************\r
3  * MXChange v0.2.1                                    Start: 09/28/2003 *\r
4  * ===============                              Last change: 05/13/2004 *\r
5  *                                                                      *\r
6  * -------------------------------------------------------------------- *\r
7  * File              : what-memedit.php                                 *\r
8  * -------------------------------------------------------------------- *\r
9  * Short description : Edit member's menu                               *\r
10  * -------------------------------------------------------------------- *\r
11  * Kurzbeschreibung  : Editieren Sie das Men� f�r Ihre Mitglieder       *\r
12  * -------------------------------------------------------------------- *\r
13  *                                                                      *\r
14  * -------------------------------------------------------------------- *\r
15  * Copyright (c) 2003 - 2008 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 \r
46 if (!empty($_GET['sub']))\r
47 {\r
48         $AND = sprintf("action='%s'", SQL_ESCAPE($_GET['sub']));\r
49         $SUB = SQL_ESCAPE($_GET['sub']);\r
50 }\r
51 \r
52 // Get count of (maybe) selected menu points\r
53 $chk = 0;\r
54 if (!empty($_POST['sel'])) $chk = SELECTION_COUNT($_POST['sel']);\r
55 \r
56 OPEN_TABLE("100%", "admin_content admin_content_align", "");\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         $SW = 2; $cnt = 0; $OUT = "";\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."_member_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                                 $content = array(\r
79                                         'cnt'    => $cnt,\r
80                                         'sel'    => $sel,\r
81                                         'menu'   => $menu,\r
82                                         'sw'     => $SW,\r
83                                         'act' => ADMIN_MAKE_MENU_SELECTION("member", "act", "sel_act[".$sel."]", $act),\r
84                                         'what'   => ADMIN_MAKE_MENU_SELECTION("member", "what", "sel_what[".$sel."]", $wht),\r
85                                 );\r
86                                 // Load template\r
87                                 $OUT .= LOAD_TEMPLATE("admin_mmenu_edit_row", true, $content);\r
88                         }\r
89                          else\r
90                         {\r
91                                 // Entry not found?\r
92                                 $content = array(\r
93                                         'sw'  => $SW,\r
94                                         'sel' => $sel\r
95                                 );\r
96                                 $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);\r
97                         }\r
98                         $SW = 3 - $SW;\r
99                 }\r
100         }\r
101         define('__MENU_ROWS', $OUT);\r
102         define('__CNT_VALUE', $cnt);\r
103 \r
104         // Load template\r
105         LOAD_TEMPLATE("admin_mmenu_edit");\r
106 }\r
107  elseif ((isset($_POST['del'])) && ($chk > 0) && (!IS_DEMO()))\r
108 {\r
109         // Del menu entries with or without confirmation\r
110         define('__SUB_VALUE', $SUB);\r
111         define('__CHK_VALUE', $chk);\r
112         $SW = 2; $cnt = 0; $OUT = "";\r
113         foreach ($_POST['sel'] as $sel=>$confirm)\r
114         {\r
115                 if ($confirm == 1)\r
116                 {\r
117                         $cnt++;\r
118                         $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND id=%d LIMIT 1",\r
119                          array(bigintval($sel)), __FILE__, __LINE__);\r
120                         if (SQL_NUMROWS($result) == 1)\r
121                         {\r
122                                 // Entry found so we load the stuff...\r
123                                 list($title) = SQL_FETCHROW($result);\r
124                                 SQL_FREERESULT($result);\r
125                                 $content = array(\r
126                                         'cnt'   => $cnt,\r
127                                         'sel'   => $sel,\r
128                                         'title' => $title\r
129                                 );\r
130                                 $OUT .= LOAD_TEMPLATE("admin_mmenu_delete_row", true, $content);\r
131                         }\r
132                          else\r
133                         {\r
134                                 // Entry not found?\r
135                                 $content = array(\r
136                                         'sw'  => $SW,\r
137                                         'sel' => $sel\r
138                                 );\r
139                                 $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);\r
140                         }\r
141                 }\r
142         }\r
143         define('__MENU_ROWS', $OUT);\r
144         define('__CNT_VALUE', $cnt);\r
145 \r
146         // Load template\r
147         LOAD_TEMPLATE("admin_mmenu_delete");\r
148 }\r
149  elseif ((isset($_POST['status'])) && ($chk > 0) && (!IS_DEMO()))\r
150 {\r
151         // Change status (visible / locked)\r
152         define('__SUB_VALUE', $SUB);\r
153         define('__CHK_VALUE', $chk);\r
154         $SW = 2; $cnt = 0; $OUT = "";\r
155         foreach ($_POST['sel'] as $sel=>$confirm)\r
156         {\r
157                 if ($confirm == 1)\r
158                 {\r
159                         $cnt++;\r
160                         $result = SQL_QUERY_ESC("SELECT title, visible, locked FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND id=%d LIMIT 1",\r
161                          array(bigintval($sel)), __FILE__, __LINE__);\r
162                         if (SQL_NUMROWS($result) == 1)\r
163                         {\r
164                                 // Entry found so we load the stuff...\r
165                                 list($menu, $vis, $locked) = SQL_FETCHROW($result);\r
166                                 SQL_FREERESULT($result);\r
167                                 $content = array(\r
168                                         'cnt'     => $cnt,\r
169                                         'menu'    => $menu,\r
170                                         'sel'     => $sel,\r
171                                         'sw'      => $SW,\r
172                                         'visible' => ADD_SELECTION("yn", $vis   , "visible", $sel),\r
173                                         'locked'  => ADD_SELECTION("yn", $locked, "locked" , $sel),\r
174                                 );\r
175 \r
176                                 // Load template\r
177                                 $OUT .= LOAD_TEMPLATE("admin_menu_status_row", true, $content);\r
178                         }\r
179                          else\r
180                         {\r
181                                 // Entry not found?\r
182                                 $content = array(\r
183                                         'sw'  => $SW,\r
184                                         'sel' => $sel\r
185                                 );\r
186                                 $OUT .= LOAD_TEMPLATE("admin_menu_404_row", true, $content);\r
187                         }\r
188                         $SW = 3 - $SW;\r
189                 }\r
190         }\r
191         define('__MENU_ROWS', $OUT);\r
192         define('__CNT_VALUE', $cnt);\r
193         //\r
194         LOAD_TEMPLATE("admin_mmenu_status");\r
195 }\r
196  elseif ((isset($_POST['ok'])) && (!IS_DEMO()))\r
197 {\r
198         // An act is done...\r
199         foreach ($_POST['sel'] as $sel=>$menu)\r
200         {\r
201                 $AND = "what=''";\r
202                 $sel = bigintval($sel);\r
203                 if (!empty($SUB)) $AND = "action='".$SUB."'";\r
204                 switch ($_POST['ok'])\r
205                 {\r
206                 case "edit": // Edit menu\r
207                         $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET title='%s', action='%s', what='%s', descr='%s' WHERE ".$AND." AND id=%d LIMIT 1",\r
208                          array($menu, $_POST['sel_act'][$sel], $_POST['sel_what'][$sel], $_POST['sel_descr'][$sel], $sel), __FILE__, __LINE__);\r
209                         break;\r
210 \r
211                 case "del": // Delete menu\r
212                         $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND id=%d LIMIT 1",\r
213                          array($sel), __FILE__, __LINE__);\r
214                         break;\r
215 \r
216                 case "status": // Change status of menus\r
217                         $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET visible='%s', locked='%s' WHERE ".$AND." AND id=%d LIMIT 1",\r
218                          array($_POST['visible'][$sel], $_POST['locked'][$sel], $sel), __FILE__, __LINE__);\r
219                         break;\r
220                 }\r
221                 break;\r
222         }\r
223 \r
224         // Load template\r
225         LOAD_TEMPLATE("admin_data_saved");\r
226 }\r
227  else\r
228 {\r
229         if ((!empty($_GET['act'])) && (!empty($_GET['tid'])) && (!empty($_GET['fid'])))\r
230         {\r
231                 // Get IDs\r
232                 if (!empty($_GET['w']))\r
233                 {\r
234                         // Sub menus selected\r
235                         $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE action='%s' AND sort='%s' LIMIT 1",\r
236                          array(bigintval($_GET['act']), bigintval($_GET['tid'])), __FILE__, __LINE__);\r
237                         list($tid) = SQL_FETCHROW($result);\r
238                         SQL_FREERESULT($result);\r
239                         $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE action='%s' AND sort='%s' LIMIT 1",\r
240                          array(bigintval($_GET['act']), bigintval($_GET['fid'])), __FILE__, __LINE__);\r
241                         list($fid) = SQL_FETCHROW($result);\r
242                         SQL_FREERESULT($result);\r
243                 }\r
244                  else\r
245                 {\r
246                         // Main menu selected\r
247                         $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE what='' AND sort='%s' LIMIT 1",\r
248                          array(bigintval($_GET['tid'])), __FILE__, __LINE__);\r
249                         list($tid) = SQL_FETCHROW($result);\r
250                         $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_member_menu WHERE what='' AND sort='%s' LIMIT 1",\r
251                          array(bigintval($_GET['fid'])), __FILE__, __LINE__);\r
252                         list($fid) = SQL_FETCHROW($result);\r
253                 }\r
254 \r
255                 if ((!empty($tid)) && (!empty($fid)))\r
256                 {\r
257                         // Sort menu\r
258                         $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",\r
259                          array(bigintval($_GET['tid']), bigintval($fid)), __FILE__, __LINE__);\r
260                         $result_sort = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_member_menu SET sort='%s' WHERE ".$AND." AND id=%d LIMIT 1",\r
261                          array(bigintval($_GET['fid']), bigintval($tid)), __FILE__, __LINE__);\r
262                 }\r
263         }\r
264 \r
265         if (!empty($SUB))\r
266         {\r
267                 // Edit sub menus\r
268                 $result = SQL_QUERY("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_member_menu WHERE ".$AND." AND what != '' ORDER BY sort ASC", __FILE__, __LINE__);\r
269         }\r
270          else\r
271         {\r
272                 // Edit main menus\r
273                 $result = SQL_QUERY("SELECT id, action, what, title, sort FROM "._MYSQL_PREFIX."_member_menu WHERE what='' ORDER BY sort ASC", __FILE__, __LINE__);\r
274         }\r
275         $max = SQL_NUMROWS($result);\r
276         if ($max > 0)\r
277         {\r
278                 $SUB = "";\r
279                 if (!empty($SUB)) $SUB = $SUB;\r
280                 define('__SUB_VALUE', $SUB);\r
281 \r
282                 $SW = 2; $cnt = 0; $OUT = "";\r
283                 while (list($id, $act, $wht, $title, $sort) = SQL_FETCHROW($result))\r
284                 {\r
285                         $cnt++;\r
286                         if (($sort == 0) || (($sort == 1) && (!empty($SUB))))\r
287                         {\r
288                                 // Is highest position\r
289                                 $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=memedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";\r
290                         }\r
291                          elseif ($cnt == $max)\r
292                         {\r
293                                 // Is lowest position\r
294                                 $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=memedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort-1)."&amp;fid=".$sort."\">".HIGHER."</A>";\r
295                         }\r
296                          elseif ($sort > 0)\r
297                         {\r
298                                 // Anything else between highest and lowest\r
299                                 $NAVI = "<A href=\"".URL."/modules.php?module=admin&amp;what=memedit&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=memedit&amp;sub=".$SUB."&amp;act=".$act."&amp;w=".$wht."&amp;tid=".($sort+1)."&amp;fid=".$sort."\">".LOWER."</A>";\r
300                         }\r
301                         if (empty($act))   $act   = "&nbsp;";\r
302                         if (empty($wht))   $wht   = "&nbsp;";\r
303                         if (empty($title)) $title = "&nbsp;";\r
304                         $content = array(\r
305                                 'sw'     => $SW,\r
306                                 'id'     => $id,\r
307                                 'action' => $act,\r
308                                 'what'   => $wht,\r
309                                 'title'  => $title,\r
310                                 'navi'   => $NAVI,\r
311                                 'mode'   => "mem",\r
312                         );\r
313                         $OUT .= LOAD_TEMPLATE("admin_menu_overview_row", true, $content);\r
314                         $SW = 3 - $SW;\r
315                 }\r
316 \r
317                 // Free memory\r
318                 SQL_FREERESULT($result);\r
319                 define('__MENU_ROWS', $OUT);\r
320                 LOAD_TEMPLATE("admin_mmenu_overview");\r
321         }\r
322          else\r
323         {\r
324                 // Menu entries are missing... (???)\r
325                 LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_MENUS_FOUND);\r
326         }\r
327 }\r
328 OUTPUT_HTML ("</DIV>");\r
329 CLOSE_TABLE();\r
330 //\r
331 ?>\r