Copyright updated
[mailer.git] / 0.2.1 / inc / modules / admin / what-admin_add.php
1 <?php\r
2 /************************************************************************\r
3  * MXChange v0.2.1                                    Start: 09/27/2003 *\r
4  * ===============                              Last change: 12/13/2004 *\r
5  *                                                                      *\r
6  * -------------------------------------------------------------------- *\r
7  * File              : what-admin_add.php                               *\r
8  * -------------------------------------------------------------------- *\r
9  * Short description : Add more entries to the admin menu               *\r
10  * -------------------------------------------------------------------- *\r
11  * Kurzbeschreibung  : Mehr Men�eintr�ge zum Admin-Bereich einf�gen     *\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 OPEN_TABLE("100%", "admin_content admin_content_align", "");\r
44 \r
45 // Check if the admin has entered title and what-php file name...\r
46 if (((empty($_POST['title'])) || (empty($_POST['menu'])) || (empty($_POST['descr']))) && (isset($_POST['ok'])))\r
47 {\r
48         unset($_POST['ok']);\r
49 }\r
50 \r
51 if (!isset($_POST['ok']))\r
52 {\r
53         // Create arrays\r
54         $menus = array(); $titles = array(); $below = array();\r
55 \r
56         // Get all available main menus\r
57         $result = SQL_QUERY("SELECT action, title, sort FROM "._MYSQL_PREFIX."_admin_menu WHERE what='' ORDER BY sort", __FILE__, __LINE__);\r
58         if (SQL_NUMROWS($result) > 0)\r
59         {\r
60                 // Read menu structure\r
61                 while (list($act, $title, $sort) = SQL_FETCHROW($result))\r
62                 {\r
63                         // Menu actions\r
64                         $menus[] = $act;\r
65 \r
66                         // Menu titles\r
67                         $titles[] = $title;\r
68 \r
69                         // Below this menu point should the new be added so we simply increase the sort value by 1 :-)\r
70                         $below[] = $sort + 1;\r
71                 }\r
72 \r
73                 // Free memory\r
74                 SQL_FREERESULT($result);\r
75 \r
76                 // Remove double eintries\r
77                 $prev = ""; $dmy = $menus; $dmy2 = $titles; $dmy3 = $below;\r
78                 foreach ($menus as $key=>$value)\r
79                 {\r
80                         if ($value == $prev)\r
81                         {\r
82                                 unset($dmy[$key]);\r
83                                 unset($dmy2[$key]);\r
84                                 unset($dmy3[$key]);\r
85                         }\r
86                          else\r
87                         {\r
88                                 $prev = $value;\r
89                         }\r
90                 }\r
91                 $menus = $dmy; $titles = $dmy2; $below = $dmy3;\r
92                 // Load sub menus :)\r
93                 foreach ($menus as $key_main=>$value_main)\r
94                 {\r
95                         $result = SQL_QUERY_ESC("SELECT what, title, sort FROM "._MYSQL_PREFIX."_admin_menu WHERE action='%s' AND what != '' ORDER BY sort",\r
96                          array($value_main), __FILE__, __LINE__);\r
97                         if (SQL_NUMROWS($result) > 0)\r
98                         {\r
99                                 $menus[$value_main] = array();\r
100                                 $titles[$value_main] = array();\r
101                                 $below[$value_main] = array();\r
102                                 // Read menu structure\r
103                                 while (list($act, $title, $sort) = SQL_FETCHROW($result))\r
104                                 {\r
105                                         // Menu actions\r
106                                         $menus[$value_main][] = $act;\r
107 \r
108                                         // Menu titles\r
109                                         $titles[$value_main][] = $title;\r
110 \r
111                                         // Below this menu point should the new be added so we simply increase the sort value by 1 :-)\r
112                                         $below[$value_main][] = $sort + 1;\r
113                                 }\r
114 \r
115                                 // Free memory\r
116                                 SQL_FREERESULT($result);\r
117 \r
118                                 // Remove double eintries\r
119                                 $prev = ""; $dmy = $menus[$value_main]; $dmy2 = $titles[$value_main]; $dmy3 = $below[$value_main];\r
120                                 foreach ($menus[$value_main] as $key=>$value)\r
121                                 {\r
122                                         if ($value == $prev)\r
123                                         {\r
124                                                 unset($dmy[$key]);\r
125                                                 unset($dmy2[$key]);\r
126                                                 unset($dmy3[$key]);\r
127                                         }\r
128                                          else\r
129                                         {\r
130                                                 $prev = $value;\r
131                                         }\r
132                                 }\r
133                                 $menus[$value_main] = $dmy; $titles[$value_main] = $dmy2; $below[$value_main] = $dmy3;\r
134                         }\r
135                 }\r
136         }\r
137         $OUT = "    <SELECT class=\"admin_select\" name=\"sort\" size=\"1\">\r
138       <OPTION value=\"0\">".IS_FIRST_MENU."</OPTION>\n";\r
139         foreach ($below as $key=>$m)\r
140         {\r
141                 if (is_array($m))\r
142                 {\r
143                         foreach ($m as $key2=>$m2)\r
144                         {\r
145                                 $OUT .= "      <OPTION value=\"".$m2."\">".$titles[$key][$key2];\r
146                                 foreach ($menus as $k=>$v)\r
147                                 {\r
148                                         if (($v == $key) && (!is_array($v)))\r
149                                         {\r
150                                                 $OUT .= " (".$titles[$k].")";\r
151                                         }\r
152                                 }\r
153                                 $OUT .= "</OPTION>\n";\r
154                         }\r
155                 }\r
156                  else\r
157                 {\r
158                         $OUT .= "      <OPTION value=\"".$m."\">".$titles[$key]."</OPTION>\n";\r
159                 }\r
160         }\r
161         $OUT .= "</SELECT>";\r
162 \r
163         define('__BELOW_SELECTION' , $OUT);\r
164         define('__WHAT_SELECTION'  , ADMIN_MAKE_MENU_SELECTION("admin", "what", "name"));\r
165         define('__ACTION_SELECTION', ADMIN_MAKE_MENU_SELECTION("admin", "action", "menu"));\r
166 \r
167         // Display form\r
168         LOAD_TEMPLATE("admin_admin_add");\r
169 }\r
170  elseif (!IS_DEMO())\r
171 {\r
172         // Insert new menu entry\r
173         if (!empty($_POST['menu']))\r
174         {\r
175                 // Add sub menu\r
176                 $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort)\r
177 VALUES('%s', '%s', '%s', '%s', '%s')",\r
178  array(\r
179         $_POST['menu'],\r
180         $_POST['name'],\r
181         $_POST['title'],\r
182         addslashes($_POST['descr']),\r
183         bigintval($_POST['sort']),\r
184 ), __FILE__, __LINE__);\r
185         }\r
186          else\r
187         {\r
188                 // Add main menu\r
189                 $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, title, descr, sort)\r
190 VALUES('%s', '%s', '%s', '%s')",\r
191  array(\r
192         $_POST['name'],\r
193         $_POST['title'],\r
194         addslashes($_POST['descr']),\r
195         bigintval($_POST['sort']),\r
196 ), __FILE__, __LINE__);\r
197         }\r
198         LOAD_TEMPLATE("admin_settings_saved", false, SAVING_DONE);\r
199 }\r
200  else\r
201 {\r
202         // Is demo login!\r
203         LOAD_TEMPLATE("admin_settings_saved", false, SETTINGS_NOT_SAVED);\r
204 }\r
205 CLOSE_TABLE();\r
206 \r
207 //\r
208 ?>\r