Several minor rewrites, getter GET_JACKPOT_POINTS() added
[mailer.git] / inc / extensions / ext-sql_patches.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 08/21/2004 *
4  * ================                             Last change: 12/04/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-sql_patches.php                              *
8  * -------------------------------------------------------------------- *
9  * Short description : SQL fixes for pro versions                       *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Ausgelagertes "Profildaten aendern"              *
12  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
17  * Needs to be in all Files and every File needs "svn propset           *
18  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
19  * -------------------------------------------------------------------- *
20  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
21  * For more information visit: http://www.mxchange.org                  *
22  *                                                                      *
23  * This program is free software; you can redistribute it and/or modify *
24  * it under the terms of the GNU General Public License as published by *
25  * the Free Software Foundation; either version 2 of the License, or    *
26  * (at your option) any later version.                                  *
27  *                                                                      *
28  * This program is distributed in the hope that it will be useful,      *
29  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
30  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
31  * GNU General Public License for more details.                         *
32  *                                                                      *
33  * You should have received a copy of the GNU General Public License    *
34  * along with this program; if not, write to the Free Software          *
35  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
36  * MA  02110-1301  USA                                                  *
37  ************************************************************************/
38
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
41         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
42         require($INC);
43 } // END - if
44
45 // Version number
46 EXT_SET_VERSION('0.6.3');
47
48 // Version history array (add more with , '0.1.0' and so on)
49 EXT_SET_VER_HISTORY(array('0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3'));
50
51 switch ($EXT_LOAD_MODE) {
52         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
53                 // SQL commands to run
54                 ADD_EXT_SQL('');
55                 break;
56
57         case 'remove': // Do stuff when removing extension
58                 // Drop tables
59                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_admin_menu_las`");
60                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_admin_menu_las_data`");
61                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_admin_menu_stats`");
62                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_filters`");
63
64                 // Delete admin menu entries
65                 ADD_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE
66 `what`='config_extensions' OR
67 `what`='config_home' OR
68 `what`='list_unconfirmed' OR
69 `what`='config_refid' OR
70 `what`='config_title' OR
71 `what`='sub_points' OR
72 `what`='config_admin' OR
73 `what`='config_proxy' OR
74 `what`='config_session' OR
75 `what`='list_filter'");
76
77                 // Delete/update member menu entries
78                 ADD_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE
79 `what`='stats2' OR
80 `what`='reflist' OR
81 (`action`='stats' AND (`what`='' OR `what` IS NULL)) OR
82 (`action`='extras' AND (`what`='' OR `what` IS NULL)) OR
83 (`action`='rals' AND (`what`='' OR `what` IS NULL)) OR
84 (`action`='account' AND (`what`='' OR `what` IS NULL))");
85                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `action`='main' WHERE
86 `action`='stats' OR
87 `action`='extras' OR
88 `action`='rals' OR
89 `action`='account'");
90
91                 // Drop indexes
92                 /* @TODO SQL_ALTER_TABLE() should work now properly
93                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_extensions` DROP UNIQUE KEY `ext_name`");
94                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admins` DROP UNIQUE KEY `login`");
95                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refbanner` DROP INDEX `visible`");
96                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refdepths` DROP UNIQUE KEY `level`");
97                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refsystem` DROP INDEX `level`");
98                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_pool` DROP INDEX `data_type`");
99                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_mod_reg` DROP UNIQUE KEY `module`");
100                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admin_menu` DROP INDEX `action`");
101                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admin_menu` DROP INDEX `what`");
102                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` DROP INDEX `task_type`");
103                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` DROP INDEX `status`");
104                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` DROP INDEX `task_created`");
105                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` DROP FULLTEXT `subject`");
106                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` DROP INDEX `subject`");
107                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_extensions` DROP INDEX `ext_active`");
108                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` DROP INDEX `action`");
109                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` DROP INDEX `what`");
110                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` DROP INDEX `sort`");
111                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` DROP INDEX `visible`");
112                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` DROP INDEX `locked`");
113                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` DROP INDEX `what`");
114                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` DROP INDEX `sort`");
115                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` DROP INDEX `visible`");
116                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` DROP INDEX `locked`");
117                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_cats` DROP INDEX `visible`");
118                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_cats` DROP INDEX `sort`");
119                 */
120                 break;
121
122         case 'activate': // Do stuff when admin activates this extension
123                 // SQL commands to run
124                 ADD_EXT_SQL('');
125                 break;
126
127         case 'deactivate': // Do stuff when admin deactivates this extension
128                 // SQL commands to run
129                 ADD_EXT_SQL('');
130                 break;
131
132         case 'update': // Update an extension
133                 switch ($EXT_VER) {
134                         case '0.0.1': // SQL queries for v0.0.1
135                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `ext_autopurge` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
136                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_extensions','Erweitungsmanagement','Alle Einstellungen am Erweiterungsmanagement.', 10)");
137
138                                 // Update notes (these will be set as task text!)
139                                 EXT_SET_UPDATE_NOTES("Es kann nun bestimmt werden, ob vom Server gel&ouml;schte ext-xxx.php erkannt werden sollen und die verkn&uuml;pften Daten auch aus der Datenbank entfernt werden sollen.");
140                                 break;
141
142                         case '0.0.2': // SQL queries for v0.0.2
143                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` CHANGE `auto_purge` `auto_purge` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day')*14)."");
144
145                                 // Update notes (these will be set as task text!)
146                                 EXT_SET_UPDATE_NOTES("In der Tabelle <strong>{!_MYSQL_PREFIX!}_config</strong> musste die Spalte <strong>auto_purge</strong> (autom. L&ouml;schen von Best&auml;tigungsmails angepasst werden (war auf dem Testsystem auf TINYINT(4) gesetzt.)");
147                                 break;
148
149                         case '0.0.3': // SQL queries for v0.0.3
150                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `points_word` VARCHAR(255) NOT NULL DEFAULT 'Punkte'");
151
152                                 // Update notes (these will be set as task text!)
153                                 EXT_SET_UPDATE_NOTES("Das Wort &quot;Punkte&quot; kann nun per Datenbank ge&auml;ndert werden. Damit k&ouml;nnen Sie anstelle des Wortes Punkte auch Klammlose oder &euro; schreiben.");
154                                 break;
155
156                         case '0.0.4': // SQL queries for v0.0.4
157                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `mails_page` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
158
159                                 // Update notes (these will be set as task text!)
160                                 EXT_SET_UPDATE_NOTES("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugef&uuml;gt.");
161                                 break;
162
163                         case '0.0.5': // SQL queries for v0.0.5
164                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `index_home` VARCHAR(255) NOT NULL DEFAULT 'welcome'");
165                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_home','Home-Seite festlegen','Stellen Sie hier ein, welcher Men&uuml;punkt (what-welcome ist Standart) als Einstiegspunkt in das Men&uuml;system genutzt werden soll.', 5)");
166
167                                 // Update notes (these will be set as task text!)
168                                 EXT_SET_UPDATE_NOTES("Die what-welcome.php ist derzeit die &quot;Home&quot;-Seite (Eingangsseite). Dies kann nun per Datenbank ge&auml;ndert werden.");
169                                 break;
170
171                         case '0.0.6': // SQL queries for v0.0.6
172                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'N'");
173
174                                 // Update notes (these will be set as task text!)
175                                 EXT_SET_UPDATE_NOTES("Es k&ouml;nnen nun SQL-Updates von einander abh&auml;ngig gemacht werden und die CSS-Datei kann per Admin-Bereich (wegen Debuggings) ein- bzw. ausgeschaltet werden.");
176                                 break;
177
178                         case '0.0.7': // SQL queries for v0.0.7
179                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `verbose_sql` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
180
181                                 // Update notes (these will be set as task text!)
182                                 EXT_SET_UPDATE_NOTES("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
183                                 break;
184
185                         case '0.0.8': // SQL queries for v0.0.8
186                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `menu_blur_spacer` VARCHAR(255) NOT NULL DEFAULT '&nbsp;<strong><big>&middot;</big></strong>&nbsp;'");
187
188                                 // Update notes (these will be set as task text!)
189                                 EXT_SET_UPDATE_NOTES("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
190                                 break;
191
192                         case '0.0.9': // SQL queries for v0.0.9
193                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('email','list_unconfirmed','Unbest. Mails auflisten','Schauen Sie sich hier unbest&auml;tigte Maillinks an. Bitte diesen Link nur &uuml;ber dem EMail-Archiv oder EMail-Details aufrufen, direkt aufgerufen bekommen Sie eine Fehlermeldung.', 8)");
194
195                                 // Update notes (these will be set as task text!)
196                                 EXT_SET_UPDATE_NOTES("Unbest&auml;tigte Maillinks k&ouml;nnen unter Email-Management -&gt; Unbest. Mails auflisten aufgelistet werden.");
197                                 break;
198
199                         case '0.1.0': // SQL queries for v0.2.1
200                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `reg_points_mode` ENUM('ref','direct') NOT NULL DEFAULT 'ref'");
201
202                                 // Update notes (these will be set as task text!)
203                                 EXT_SET_UPDATE_NOTES("Soll der einmalige Ref-Bonus &uuml;ber das Referal-System (also alle oberen Refs bekommen auch etwas davon ab) oder direkt dem Werber aufgebucht werden?");
204                                 break;
205
206                         case '0.1.1': // SQL queries for v0.1.1
207                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `title`='Home-/Eingangsseite', descr='Stellen Sie hier ein, welcher Men&uuml;punkt (what-welcome ist Standart) als Einstiegspunkt in das Men&uuml;system genutzt werden soll und wie die automatische Weiterleitung in der Eingangsseite funktionieren soll.' WHERE `what`='config_home' LIMIT 1");
208                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `index_delay` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0");
209                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `index_cookie` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day')*365)."");
210
211                                 // Update notes (these will be set as task text!)
212                                 EXT_SET_UPDATE_NOTES("Sie k&ouml;nnen nun <a href=\"{!URL!}/modules.php?module=admin&amp;`what`=config_home\">hier</a> die Verz&ouml;gerungszeit in der <a href=\"{!URL!}/index.php\">Eingangsseite</a> einstellen.");
213                                 break;
214
215                         case '0.1.2': // SQL queries for v0.1.2
216                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_refid','Standart-Ref-ID','Stellen Sie hier die User-ID ein, die genommen werden soll, wenn der Gast n icht per Referal-Link Ihren Mailtausch aufgerufen hat.', 7)");
217                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `def_refid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
218
219                                 // Update notes (these will be set as task text!)
220                                 EXT_SET_UPDATE_NOTES("Standart Referal-ID kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
221                                 break;
222
223                         case '0.1.3': // SQL queries for v0.1.3
224                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD refid_target ENUM('register','index') NOT NULL DEFAULT 'register'");
225
226                                 // Update notes (these will be set as task text!)
227                                 EXT_SET_UPDATE_NOTES("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
228                                 break;
229
230                         case '0.1.4': // SQL queries for v0.1.4
231                                 // Update notes (these will be set as task text!)
232                                 EXT_SET_UPDATE_NOTES("Ung&uuml;ltiges Update (nach ext-theme.php verschoben!).");
233                                 break;
234
235                         case '0.1.5': // SQL queries for v0.1.5
236                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_extensions` DROP ext_has_admin");
237
238                                 // Update notes (these will be set as task text!)
239                                 EXT_SET_UPDATE_NOTES("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{!_MYSQL_PREFIX!}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
240                                 break;
241
242                         case '0.1.6': // SQL queries for v0.1.6
243                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `enable_title_deco` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
244                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `title_left` VARCHAR(10) NOT NULL DEFAULT '[--'");
245                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `title_middle` VARCHAR(10) NOT NULL DEFAULT '-'");
246                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `title_right` VARCHAR(10) NOT NULL DEFAULT '--]'");
247                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `enable_mod_title` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
248                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `enable_what_title` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
249                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_title','Seitentitel &auml;ndern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8)");
250
251                                 // Update notes (these will be set as task text!)
252                                 EXT_SET_UPDATE_NOTES("Dekorationen des Seitentiteles lassen sich ein- und ausschalten und selber definieren; Modul-Titel und Titel der <strong>what</strong>-Dateien kann hinzugef&uuml;gt werden.");
253                                 break;
254
255                         case '0.1.7': // SQL queries for v0.1.7
256                                 // Update notes (these will be set as task text!)
257                                 EXT_SET_UPDATE_NOTES("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
258                                 break;
259
260                         case '0.1.8': // SQL queries for v0.1.8
261                                 // Update notes (these will be set as task text!)
262                                 EXT_SET_UPDATE_NOTES("mad_count und last_mad werden nun aus der Datenbank geladen");
263                                 break;
264
265                         case '0.1.9': // SQL queries for v0.1.9
266                                 // Update notes (these will be set as task text!)
267                                 EXT_SET_UPDATE_NOTES("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
268                                 break;
269
270                         case '0.2.0': // SQL queries for v0.2.0
271                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_jackpot` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
272
273                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_payments` CHANGE `payment` `payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
274                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_payments` CHANGE `price` `price` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
275
276                                 // Update notes (these will be set as task text!)
277                                 EXT_SET_UPDATE_NOTES("5 Nachkommastellen implementiert");
278                                 break;
279
280                         case '0.2.1': // SQL queries for v0.2.1
281                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `css_php` ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
282
283                                 // Update notes (these will be set as task text!)
284                                 EXT_SET_UPDATE_NOTES("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
285                                 break;
286
287                         case '0.2.2': // SQL queries for v0.2.2
288                                 // Update notes (these will be set as task text!)
289                                 EXT_SET_UPDATE_NOTES("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
290                                 break;
291
292                         case '0.2.3': // SQL queries for v0.2.3
293                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `guest_menu` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
294                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `member_menu` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
295                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `youre_here` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
296
297                                 // Update notes (these will be set as task text!)
298                                 EXT_SET_UPDATE_NOTES("Gast- und Mitgliedsmen&uuml;s lassen sich getrennt voneinander abschalten.");
299                                 break;
300
301                         case '0.2.4': // SQL queries for v0.2.4
302                                 $auto_type = 'png'; // PNG image is the default
303                                 if ((isIncludeReadable('theme/'.getCurrentTheme().'/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
304                                         // Switch to JPEG format
305                                         $auto_type = 'jpg';
306                                 }
307                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `img_type` ENUM('jpg','png') NOT NULL DEFAULT '".$auto_type."'");
308
309                                 // Update notes (these will be set as task text!)
310                                 EXT_SET_UPDATE_NOTES("Generierung des Mailbest&auml;tigungscodes h&auml;ngt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
311                                 break;
312
313                         case '0.2.5': // SQL queries for v0.2.5
314                                 // Update notes (these will be set as task text!)
315                                 EXT_SET_UPDATE_NOTES("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
316                                 break;
317
318                         case '0.2.6': // SQL queries for v0.2.6
319                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','sub_points','{!POINTS!} abziehen','Allen oder einem Mitglied {!POINTS!} abziehen.', 8)");
320
321                                 // Update notes (these will be set as task text!)
322                                 EXT_SET_UPDATE_NOTES("Abzug von {!POINTS!} nun m&ouml;glich.");
323                                 break;
324
325                         case '0.2.7': // SQL queries for v0.2.7
326                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `stats_limit` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
327                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
328
329                                 // Update notes (these will be set as task text!)
330                                 EXT_SET_UPDATE_NOTES("<ol>
331 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
332 <li>Mitgliederstatistik mit Seitennavigation.</li>
333 </ol>");
334                                 break;
335
336                         case '0.2.8': // SQL queries for v0.2.8
337                                 // Update notes (these will be set as task text!)
338                                 EXT_SET_UPDATE_NOTES("Nicht mehr g&uuml;ltiges Update.");
339                                 break;
340
341                         case '0.2.9': // SQL queries for v0.2.9
342                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `mt_word` VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
343                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `mt_word2` VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
344                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `mt_word3` VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
345
346                                 // Update notes (these will be set as task text!)
347                                 EXT_SET_UPDATE_NOTES("W&ouml;rter <strong>Mailtausch</strong>, <strong>Mailtausches</strong> und <strong>Mailtauscher</strong> sind austauschbar.");
348                                 break;
349
350                         case '0.3.0': // SQL queries for v0.3.0
351                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `title`='{!POINTS!}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
352                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `title`='Mailverg&uuml;tungen...' WHERE `what`='payments' LIMIT 1");
353
354                                 // Update notes (these will be set as task text!)
355                                 EXT_SET_UPDATE_NOTES("Zwei Men&uuml;punkte umbenannt.");
356                                 break;
357
358                         case '0.3.1': // SQL queries for v0.3.1
359                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_extensions` ADD UNIQUE KEY (`ext_name`)");
360                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admins` ADD UNIQUE KEY (`login`)");
361                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refbanner` ADD INDEX (`visible`)");
362                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refdepths` ADD UNIQUE KEY (`level`)");
363                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refsystem` ADD INDEX (`level`)");
364                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_pool` ADD INDEX (`data_type`)");
365                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_mod_reg` ADD UNIQUE KEY (`module`)");
366                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admin_menu` ADD INDEX (`action`)");
367                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admin_menu` ADD INDEX (`what`)");
368                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` ADD INDEX (`task_type`)");
369                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` ADD INDEX (`status`)");
370                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` ADD INDEX (`task_created`)");
371                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` ADD FULLTEXT (`subject`)");
372                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` ADD INDEX (`subject`)");
373                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_extensions` ADD INDEX (`ext_active`)");
374                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` ADD INDEX (`action`)");
375                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` ADD INDEX (`what`)");
376                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` ADD INDEX (`sort`)");
377                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` ADD INDEX (`visible`)");
378                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` ADD INDEX (`locked`)");
379                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` ADD INDEX (`what`)");
380                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` ADD INDEX (`sort`)");
381                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` ADD INDEX (`visible`)");
382                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` ADD INDEX (`locked`)");
383                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_cats` ADD INDEX (`visible`)");
384                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_cats` ADD INDEX (`sort`)");
385
386                                 // Update notes (these will be set as task text!)
387                                 EXT_SET_UPDATE_NOTES("Eindeutige Schl&uuml;ssel (UNIQUE KEY) und normale Schl&uuml;ssel (INDEX) gesetzt.");
388                                 break;
389
390                         case '0.3.2': // SQL queries for v0.3.2
391                                 // Connection table between the menu system and the "logical area" system
392                                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_admin_menu_las`");
393                                 ADD_EXT_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_admin_menu_las` (
394 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
395 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
396 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
397 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
398 INDEX (`la_id`),
399 INDEX (`la_action`),
400 INDEX (`la_what`),
401 PRIMARY KEY(`id`)
402 ) TYPE={!_TABLE_TYPE!}");
403                                 // All "logical areas" together
404                                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_admin_menu_las_data`");
405                                 ADD_EXT_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_admin_menu_las_data` (
406 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
407 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
408 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
409 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
410 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
411 UNIQUE KEY (`la_id`),
412 INDEX (`la_posx`),
413 INDEX (`la_posy`),
414 PRIMARY KEY(`id`)
415 ) TYPE={!_TABLE_TYPE!}");
416                                 // Which menu do you like?
417                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `admin_menu` ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
418
419                                 // Insert menus
420                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_admin','Adminmen&uuml;','Diverse Einstellungen am Adminmen&uuml; vornehmen.', 9)");
421
422                                 // Update notes (these will be set as task text!)
423                                 EXT_SET_UPDATE_NOTES("Logische Bereiche (Logical Areas = LAs) eingef&uuml;hrt. Dadurch wird das immer st&auml;rker anwachsende Admin-Men&uuml; in grosse Hauptgruppen unterteilt, wodurch ein Auffinden von Men&uuml;punkten verbessert wird.");
424                                 break;
425
426                         case '0.3.3': // SQL queries for v0.3.3
427                                 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
428                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `admin_menu_sorter` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
429
430                                 // The statistics table
431                                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_admin_menu_stats`");
432                                 ADD_EXT_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_admin_menu_stats` (
433 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
434 `aid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
435 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
436 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
437 INDEX (`aid`),
438 PRIMARY KEY (`id`)
439 ) TYPE={!_TABLE_TYPE!}");
440
441                                 // Update notes (these will be set as task text!)
442                                 EXT_SET_UPDATE_NOTES("Admin-abh&auml;ngig werden nun Klicks im Admin-Men&uuml; gez&auml;hlt, die zur automatischen Anpassung des Men&uuml;s in den logischen Bereichen diennen. Dieses &quot;intelligente Unbauen&quot; k&ouml;nnen Sie auch ganz abschalten.");
443                                 break;
444
445                         case '0.3.4': // SQL queries for v0.3.4
446                                 // Update notes (these will be set as task text!)
447                                 EXT_SET_UPDATE_NOTES("Veraltetes Update (what=list_user&amp;mode=noref)");
448                                 break;
449
450                         case '0.3.5': // SQL queries for v0.3.5
451                                 // List accounts with no referal
452                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('stats',NULL,'Statistiken',4,'Y','N')");
453                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('stats','stats2','Framekiller-Mails',2,'Y','N')");
454                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('extras',NULL,'Extras',5,'Y','N')");
455                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('rals',NULL,'Rallyes',6,'Y','N')");
456                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('account',NULL,'Ihr Account',7,'Y','N')");
457                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `action`='stats', `sort`='1', `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
458                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `action`='extras', `sort`='3' WHERE `what`='reflinks' LIMIT 1");
459
460                                 // Update notes (these will be set as task text!)
461                                 EXT_SET_UPDATE_NOTES("Mitgliedsmen&uuml; komplett umgebaut.");
462                                 break;
463
464                         case '0.3.6': // SQL queries for v0.3.6
465                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `salt_length` TINYINT(3) UNSIGNED NOT NULL DEFAULT '9'");
466                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `pass_scramble` VARCHAR(255) NOT NULL DEFAULT ''");
467                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admins` MODIFY `password` VARCHAR(255) NOT NULL DEFAULT ''");
468                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `rand_no` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
469                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `file_hash` VARCHAR(255) NOT NULL DEFAULT ''");
470                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `master_salt` VARCHAR(255) NOT NULL DEFAULT ''");
471                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
472                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
473                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
474
475                                 // Update notes (these will be set as task text!)
476                                 EXT_SET_UPDATE_NOTES("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
477                                 break;
478
479                         case '0.3.7': // SQL queries for v0.3.7
480                                 EXT_SET_UPDATE_NOTES("Problem w&auml;hrend des Installationsvorganges behoben.");
481                                 break;
482
483                         case '0.3.8': // SQL queries for v0.3.8
484                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
485                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
486
487                                 // Update notes (these will be set as task text!)
488                                 EXT_SET_UPDATE_NOTES("Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.");
489                                 break;
490
491                         case '0.3.9': // SQL queries for v0.3.9
492                                 /**
493                                  * Obsolete update
494                                 ADD_EXT_SQL("UPDATE  `{!_MYSQL_PREFIX!}_admin_menu` SET `title` = REPLACE(`title`, '--POINTS--','!POINTS!') WHERE `title` LIKE '%--POINTS--%'");
495                                 ADD_EXT_SQL("UPDATE  `{!_MYSQL_PREFIX!}_admin_menu` SET `descr` = REPLACE(`descr`, '--POINTS--','!POINTS!') WHERE `descr` LIKE '%--POINTS--%'");
496                                 ADD_EXT_SQL("UPDATE  `{!_MYSQL_PREFIX!}_guest_menu` SET `title` = REPLACE(`title`, '--POINTS--','!POINTS!') WHERE `title` LIKE '%--POINTS--%'");
497                                 ADD_EXT_SQL("UPDATE  `{!_MYSQL_PREFIX!}_member_menu` SET `title` = REPLACE(`title`, '--POINTS--','!POINTS!') WHERE `title` LIKE '%--POINTS--%'");
498                                 */
499
500                                 // Update notes (these will be set as task text!)
501                                 EXT_SET_UPDATE_NOTES("Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.");
502                                 break;
503
504                         case '0.4.0': // SQL queries for v0.4.0
505                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
506
507                                 // Update notes (these will be set as task text!)
508                                 EXT_SET_UPDATE_NOTES("Email-Verwaltung nach Email-Management umbenannt.");
509                                 break;
510
511                         case '0.4.1': // SQL queries for v0.4.1
512                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `show_timings` ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
513
514                                 // Update notes (these will be set as task text!)
515                                 EXT_SET_UPDATE_NOTES("Tabellen-Schl&uuml;ssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
516                                 break;
517
518                         case '0.4.2': // SQL queries for v0.4.2
519                                 // Update notes (these will be set as task text!)
520                                 EXT_SET_UPDATE_NOTES("Nicht mehr g&uuml;ltiges Update.");
521                                 break;
522
523                         case '0.4.3': // SQL queries for v0.4.3
524                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `proxy_host` VARCHAR(255) NOT NULL DEFAULT ''");
525                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `proxy_port` INT(5) UNSIGNED NOT NULL DEFAULT 0");
526                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `proxy_username` VARCHAR(255) NOT NULL DEFAULT ''");
527                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `proxy_password` VARCHAR(255) NOT NULL DEFAULT ''");
528                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_proxy','Proxy-Einstellungen','Sollte Ihr Webserver sich hinter einem Proxy befinden, so k&ouml;nnen Sie hier MXChange so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15)");
529
530                                 // Update notes (these will be set as task text!)
531                                 EXT_SET_UPDATE_NOTES("Proxy-Einstellungen hinzugef&uuml;gt.");
532                                 break;
533
534                         case '0.4.4': // SQL queries for v0.4.4
535                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
536                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
537                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
538                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `what`=NULL WHERE `what`=''");
539                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `what`=NULL WHERE `what`=''");
540                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `what`=NULL WHERE `what`=''");
541                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admin_menu` DROP INDEX `what`");
542                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_admin_menu` ADD UNIQUE (`what`)");
543                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` DROP INDEX `what`");
544                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_guest_menu` ADD UNIQUE (`what`)");
545                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` ADD INDEX `action` (`action`)");
546                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` DROP INDEX `what`");
547                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` ADD UNIQUE (`what`)");
548
549                                 // Update notes (these will be set as task text!)
550                                 EXT_SET_UPDATE_NOTES("Schl&uuml;ssel in Admin-, Gast- und Mitgliedsmen&uuml; verbessert.");
551                                 break;
552
553                         case '0.4.5': // SQL queries for v0.4.5
554                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `last_month` CHAR(2) NOT NULL DEFAULT '00'");
555                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `last_week` CHAR(2) NOT NULL DEFAULT '00'");
556
557                                 // Update notes (these will be set as task text!)
558                                 EXT_SET_UPDATE_NOTES("T&auml;glichen/w&ouml;chentlichen/monatlichen Reset verbessert.");
559                                 break;
560
561                         case '0.4.6': // SQL queries for v0.4.6
562                                 // Update notes (these will be set as task text!)
563                                 EXT_SET_UPDATE_NOTES("Nicht mehr g&uuml;ltiges Update.");
564                                 break;
565
566                         case '0.4.7': // SQL queries for v0.4.7
567                                 // Update notes (these will be set as task text!)
568                                 EXT_SET_UPDATE_NOTES("Veraltetes Update.");
569                                 break;
570
571                         case '0.4.8': // SQL queries for v0.4.8
572                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_task_system` ADD INDEX (`subject`)");
573
574                                 // Update notes (these will be set as task text!)
575                                 EXT_SET_UPDATE_NOTES("Index f&uuml;r Betreff eingef&uuml;gt.");
576                                 break;
577
578                         case '0.4.9': // SQL queries for v0.4.9
579                                 // Update notes (these will be set as task text!)
580                                 EXT_SET_UPDATE_NOTES("Nicht mehr g&uuml;ltiges Update.");
581                                 break;
582
583                         case '0.5.0': // SQL queries for v0.5.0
584                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refsystem` DROP INDEX `level`");
585                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refsystem` DROP INDEX `userid`");
586                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refsystem` ADD UNIQUE `userid_level` (`userid`,`level`)");
587
588                                 // Update notes (these will be set as task text!)
589                                 EXT_SET_UPDATE_NOTES("Referal-System unterst&uuml;tzt nun detailierte Referal-&Uuml;bersicht und vieles mehr.");
590                                 break;
591
592                         case '0.5.1': // SQL queries for v0.5.1
593                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_member_menu` DROP `descr`");
594
595                                 // Update notes (these will be set as task text!)
596                                 EXT_SET_UPDATE_NOTES("Beschreibungsspalte von Mitgliedsmen&uuml; entfernt, welche ohnehin nicht genutzt wird.");
597                                 break;
598
599                         case '0.5.2': // SQL queries for v0.5.2
600                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000");
601
602                                 // Update notes (these will be set as task text!)
603                                 EXT_SET_UPDATE_NOTES("Prozents&aum;tze k&ouml;nnen nun f&uuml;nf Stelle hinter dem Komma sein.");
604                                 break;
605
606                         case '0.5.3': // SQL queries for v0.5.3
607                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `session_save_path` VARCHAR(255) NOT NULL DEFAULT ''");
608                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_session','Session-Einstellungen','&Auml;ndern Sie hier den Speicherpfad f&uuml;r Sessiondateien (Sitzungsdateien) ab, falls die Standart-Einstellung bei Ihrem Hoster zu Problem f&uuml;hren sollte.', 16)");
609
610                                 // Update notes (these will be set as task text!)
611                                 EXT_SET_UPDATE_NOTES("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com n&ouml;tig.");
612                                 break;
613
614                         case '0.5.4': // SQL queries for v0.5.4
615                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('main','reflist','Ref-&Uuml;bersicht',5,'Y','N')");
616
617                                 // Depends on refback extension
618                                 EXT_ADD_UPDATE_DEPENDS('refback');
619
620                                 // Update notes (these will be set as task text!)
621                                 EXT_SET_UPDATE_NOTES("Ref-&Uuml;bersicht eingebaut. Diese h&auml;ngt von der Erweiterung <strong>refback</strong> ab.");
622                                 break;
623
624                         case '0.5.5': // SQL queries for v0.5.5
625                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `show_points_unconfirmed` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
626
627                                 // Update notes (these will be set as task text!)
628                                 EXT_SET_UPDATE_NOTES("Anzeige der {!POINTS!} unter den unbest&auml;tigten Mails kann nun optional abgeschaltet werden.");
629                                 break;
630
631                         case '0.5.6': // SQL queries for v0.5.6
632                                 // Update notes (these will be set as task text!)
633                                 EXT_SET_UPDATE_NOTES("Nicht mehr g&uuml;ltiges Update.");
634                                 break;
635
636                         case '0.5.7': // SQL queries for v0.5.7
637                                 ADD_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
638
639                                 // Update notes (these will be set as task text!)
640                                 EXT_SET_UPDATE_NOTES("Auflistung der Mitglieder ohne Werber nach what=list_user&amp;mode=norefs verschoben.");
641                                 break;
642
643                         case '0.5.8': // SQL queries for v0.5.8
644                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_extensions` DROP `ext_lang_file`");
645
646                                 // Update notes (these will be set as task text!)
647                                 EXT_SET_UPDATE_NOTES("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
648                                 break;
649
650                         case '0.5.9': // SQL queries for v0.5.9
651                                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_filters`");
652                                 ADD_EXT_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_filters` (
653 `filter_id` BIGINT(20) UNSIGNED AUTO_INCREMENT,
654 `filter_name` VARCHAR(255) NOT NULL DEFAULT '',
655 `filter_function` VARCHAR(255) NOT NULL DEFAULT '',
656 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
657 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
658 PRIMARY KEY (`filter_id`)
659 ) TYPE={!_TABLE_TYPE!} COMMENT='Filter system'");
660                                 ADD_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und l&auml;sst diese de- bzw. wieder aktivieren.', 17)");
661
662                                 // Update notes (these will be set as task text!)
663                                 EXT_SET_UPDATE_NOTES("Tabellen f&uuml;r Filter-System hinzugef&uuml;gt.");
664                                 break;
665
666                         case '0.6.0': // SQL queries for v0.6.0
667                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD `update_filter_usage` ENUM('N','Y') NOT NULL DEFAULT 'N'");
668
669                                 // Update notes (these will be set as task text!)
670                                 EXT_SET_UPDATE_NOTES("Benutzungsstatistik eingebaut. Das Z&auml;hlen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
671                                 break;
672
673                         case '0.6.1': // SQL queries for v0.6.1
674                                 // Update notes (these will be set as task text!)
675                                 EXT_SET_UPDATE_NOTES("Nicht mehr g&uuml;ltiges Update.");
676                                 break;
677
678                         case '0.6.2': // SQL queries for v0.6.2
679                                 // Depends on refback extension
680                                 EXT_ADD_UPDATE_DEPENDS('user');
681
682                                 // Update notes (these will be set as task text!)
683                                 EXT_SET_UPDATE_NOTES("Abh&auml;ngigkeit von <u>ext-user</u> gesetzt.");
684                                 break;
685
686                         case '0.6.3': // SQL queries for v0.6.3
687                                 // Update notes (these will be set as task text!)
688                                 EXT_SET_UPDATE_NOTES("Filter-Tabelle bereinigt um doppelte Eintr&auml;ge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
689
690                                 // Include special filte
691                                 loadIncludeOnce('inc/fix_filters.php');
692                                 break;
693                 } // END - switch
694                 break;
695
696         case 'modify': // When the extension got modified
697                 break;
698
699         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
700                 break;
701
702         default: // Do stuff when extension is loaded
703                 // When the sql_patches is not installed we cannot load it's configuration... *sigh*
704                 if (GET_EXT_VERSION('sql_patches') != '') {
705                         // Init key
706                         setConfigEntry('secret_key', '');
707
708                         // Read key from secret file
709                         if ((getConfig('file_hash') == '') || (getConfig('master_salt') == '') || (getConfig('pass_scramble') == '')) {
710                                 // Cache instance
711                                 // Maybe need setup of secret key!
712                                 loadIncludeOnce('inc/gen_sql_patches.php');
713
714                                 // @TODO Rewrite this to a filter!
715                                 if ((GET_EXT_VERSION('cache') >= '0.1.2') && (isCacheInstanceValid())) {
716                                         // Remove extensions and mod_reg cache file
717                                         loadIncludeOnce('inc/libs/cache_functions.php');
718                                         require(sprintf("%sinc/extensions/ext-cache.php", constant('PATH')));
719                                         if ($GLOBALS['cache_instance']->loadCacheFile('extensions', true)) $GLOBALS['cache_instance']->destroyCacheFile();
720                                         if ($GLOBALS['cache_instance']->loadCacheFile('modreg'))           $GLOBALS['cache_instance']->destroyCacheFile();
721                                 } // END - if
722                         } // END - if
723
724                         // Test again
725                         if ((getConfig('file_hash') != '') && (getConfig('master_salt') != '') && (getConfig('pass_scramble') != '')) {
726                                 // File hash fas generated so we can also file the secret file... hopefully.
727                                 $hashFile = sprintf("%sinc/.secret/.%s", constant('PATH'), getConfig('file_hash'));
728                                 if (isFileReadable($hashFile)) {
729                                         // Read file
730                                         setConfigEntry('secret_key', readFromFile($hashFile));
731                                 } else {
732                                         // Remove it from database
733                                         updateConfiguration('file_hash', '');
734
735                                         // Cannot read secret file!
736                                         app_die(__FILE__, __LINE__, "Cannot read secret file! Please try to reload");
737                                 }
738                         } // END - if
739
740                         // Transfer words/numbers to constants
741                         define('POINTS'  , getConfig('points_word'));
742                         define('MT_WORD' , getConfig('mt_word'));
743                         define('MT_WORD2', getConfig('mt_word2'));
744                         define('MT_WORD3', getConfig('mt_word3'));
745                         define('_MAX'    , getConfig('rand_no'));
746                 } else {
747                         // Set some lame ( ;-) ) default settings
748                         setConfigEntry('def_refid'        , 0);
749                         setConfigEntry('enable_title_deco', 'N');
750                         setConfigEntry('title_mod_show'   , 'Y');
751                         setConfigEntry('title_middle'     , '-');
752                         // @TODO Can we remove this? setConfigEntry('verbose_sql'        , 'N');
753                         define('MT_WORD' , getMessage('DEFAULT_MT_WORD'));
754                         define('MT_WORD2', getMessage('DEFAULT_MT_WORD2'));
755                         define('MT_WORD3', getMessage('DEFAULT_MT_WORD3'));
756                         define('POINTS'  , getMessage('DEFAULT_POINTS'));
757                 }
758                 break;
759 } // END - switch
760
761 // Keep this extension always active!
762 EXT_SET_ALWAYS_ACTIVE('Y');
763
764 //
765 ?>