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