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