]> git.mxchange.org Git - mailer.git/blob - inc/extensions/ext-sql_patches.php
Fixes a missing array element
[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 - 2009 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         die();
42 } // END - if
43
44 // Version number
45 setThisExtensionVersion('0.6.5');
46
47 // Version history array (add more with , '0.1.0' and so on)
48 setExtensionVersionHistory(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', '0.6.4', '0.6.4', '0.6.5'));
49
50 // Keep this extension always active!
51 setExtensionAlwaysActive('Y');
52
53 switch (getExtensionMode()) {
54         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
55                 // SQL commands to run
56                 addExtensionSql('');
57                 break;
58
59         case 'remove': // Do stuff when removing extension
60                 // Drop tables
61                 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las`");
62                 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las_data`");
63                 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_stats`");
64                 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_filters`");
65
66                 // Delete admin menu entries
67                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE
68 `what`='config_extensions' OR
69 `what`='config_home' OR
70 `what`='list_unconfirmed' OR
71 `what`='config_refid' OR
72 `what`='config_title' OR
73 `what`='sub_points' OR
74 `what`='config_admin' OR
75 `what`='config_proxy' OR
76 `what`='config_session' OR
77 `what`='list_filter'");
78
79                 // Delete/update member menu entries
80                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE
81 `what`='stats2' OR
82 `what`='reflist' OR
83 (`action`='stats' AND (`what`='' OR `what` IS NULL)) OR
84 (`action`='extras' AND (`what`='' OR `what` IS NULL)) OR
85 (`action`='rals' AND (`what`='' OR `what` IS NULL)) OR
86 (`action`='account' AND (`what`='' OR `what` IS NULL))");
87                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='main' WHERE
88 `action`='stats' OR
89 `action`='extras' OR
90 `action`='rals' OR
91 `action`='account'");
92
93                 // Drop indexes
94                 /* @TODO SQL_ALTER_TABLE() should work now properly
95                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP UNIQUE KEY `ext_name`");
96                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` DROP UNIQUE KEY `login`");
97                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` DROP INDEX `visible`");
98                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` DROP UNIQUE KEY `level`");
99                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`");
100                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` DROP INDEX `data_type`");
101                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` DROP UNIQUE KEY `module`");
102                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` DROP INDEX `action`");
103                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` DROP INDEX `what`");
104                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP INDEX `task_type`");
105                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP INDEX `status`");
106                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP INDEX `task_created`");
107                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP FULLTEXT `subject`");
108                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP INDEX `subject`");
109                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP INDEX `ext_active`");
110                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `action`");
111                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `what`");
112                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `sort`");
113                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `visible`");
114                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `locked`");
115                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `what`");
116                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `sort`");
117                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `visible`");
118                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `locked`");
119                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` DROP INDEX `visible`");
120                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` DROP INDEX `sort`");
121                 */
122                 break;
123
124         case 'activate': // Do stuff when admin activates this extension
125                 // SQL commands to run
126                 addExtensionSql('');
127                 break;
128
129         case 'deactivate': // Do stuff when admin deactivates this extension
130                 // SQL commands to run
131                 addExtensionSql('');
132                 break;
133
134         case 'update': // Update an extension
135                 switch (getCurrentExtensionVersion()) {
136                         case '0.0.1': // SQL queries for v0.0.1
137                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ext_autopurge` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
138                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `index_home` VARCHAR(255) NOT NULL DEFAULT 'welcome'");
167                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `index_delay` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0");
211                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 setExtensionUpdateNotes("Ung&uuml;ltiges Update (nach ext-theme.php verschoben!).");
235                                 break;
236
237                         case '0.1.5': // SQL queries for v0.1.5
238                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP ext_has_admin");
239
240                                 // Update notes (these will be set as task text!)
241                                 setExtensionUpdateNotes("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                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `enable_title_deco` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
246                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `title_left` VARCHAR(10) NOT NULL DEFAULT '[--'");
247                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `title_middle` VARCHAR(10) NOT NULL DEFAULT '-'");
248                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `title_right` VARCHAR(10) NOT NULL DEFAULT '--]'");
249                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `enable_mod_title` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
250                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `enable_what_title` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
251                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 setExtensionUpdateNotes("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                                 setExtensionUpdateNotes("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                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
270                                 break;
271
272                         case '0.2.0': // SQL queries for v0.2.0
273                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_jackpot` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
274
275                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `payment` `payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
276                                 addExtensionSql("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                                 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
280                                 break;
281
282                         case '0.2.1': // SQL queries for v0.2.1
283                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
292                                 break;
293
294                         case '0.2.3': // SQL queries for v0.2.3
295                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `guest_menu` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
296                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `member_menu` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
297                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("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                                 setExtensionUpdateNotes("Abzug von {?POINTS?} nun m&ouml;glich.");
325                                 break;
326
327                         case '0.2.7': // SQL queries for v0.2.7
328                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `stats_limit` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
329                                 addExtensionSql("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                                 setExtensionUpdateNotes("<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                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
341                                 break;
342
343                         case '0.2.9': // SQL queries for v0.2.9
344                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mt_word` VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
345                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mt_word2` VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
346                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{?POINTS?}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
354                                 addExtensionSql("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                                 setExtensionUpdateNotes("Zwei Men&uuml;punkte umbenannt.");
358                                 break;
359
360                         case '0.3.1': // SQL queries for v0.3.1
361                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD UNIQUE KEY `ext_name` (`ext_name`)");
362                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD UNIQUE KEY `login` (`login`)");
363                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` ADD INDEX `visible` (`visible`)");
364                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` ADD UNIQUE KEY `level` (`level`)");
365                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD INDEX `level` (`level`)");
366                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD INDEX `data_type` (`data_type`)");
367                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD UNIQUE KEY `module` (`module`)");
368                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `action` (`action`)");
369                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `what` (`what`)");
370                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_type` (`task_type`)");
371                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `status` (`status`)");
372                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_created` (`task_created`)");
373                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD FULLTEXT `subject` (`subject`)");
374                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `subject` (`subject`)");
375                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD INDEX `ext_active` (`ext_active`)");
376                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `action` (`action`)");
377                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `what` (`what`)");
378                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `sort` (`sort`)");
379                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `visible` (`visible`)");
380                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `locked` (`locked`)");
381                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `what` (`what`)");
382                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `sort` (`sort`)");
383                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `visible` (`visible`)");
384                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `locked` (`locked`)");
385                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `visible` (`visible`)");
386                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `sort` (`sort`)");
387
388                                 // Update notes (these will be set as task text!)
389                                 setExtensionUpdateNotes("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                                 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las`");
395                                 addExtensionSql("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                                 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las_data`");
407                                 addExtensionSql("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                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `admin_menu` ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
420
421                                 // Insert menus
422                                 addExtensionSql("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `admin_menu_sorter` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
431
432                                 // The statistics table
433                                 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_stats`");
434                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_admin_menu_stats` (
435 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
436 `admin_id` 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 (`admin_id`),
440 PRIMARY KEY (`id`)
441 ) TYPE={?_TABLE_TYPE?}");
442
443                                 // Update notes (these will be set as task text!)
444                                 setExtensionUpdateNotes("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                                 setExtensionUpdateNotes("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                                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('stats',NULL,'Statistiken',4,'Y','N')");
455                                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('stats','stats2','Framekiller-Mails',2,'Y','N')");
456                                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('extras',NULL,'Extras',5,'Y','N')");
457                                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('rals',NULL,'Rallyes',6,'Y','N')");
458                                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('account',NULL,'Ihr Account',7,'Y','N')");
459                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`='1', `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
460                                 addExtensionSql("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                                 setExtensionUpdateNotes("Mitgliedsmen&uuml; komplett umgebaut.");
464                                 break;
465
466                         case '0.3.6': // SQL queries for v0.3.6
467                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `salt_length` TINYINT(3) UNSIGNED NOT NULL DEFAULT '9'");
468                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `pass_scramble` VARCHAR(255) NOT NULL DEFAULT ''");
469                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` MODIFY `password` VARCHAR(255) NOT NULL DEFAULT ''");
470                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `rand_no` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
471                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `file_hash` VARCHAR(255) NOT NULL DEFAULT ''");
472                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `master_salt` VARCHAR(255) NOT NULL DEFAULT ''");
473                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
474                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
475                                 addExtensionSql("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                                 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
479                                 break;
480
481                         case '0.3.7': // SQL queries for v0.3.7
482                                 setExtensionUpdateNotes("Problem w&auml;hrend des Installationsvorganges behoben.");
483                                 break;
484
485                         case '0.3.8': // SQL queries for v0.3.8
486                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
487                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
488
489                                 // Update notes (these will be set as task text!)
490                                 setExtensionUpdateNotes("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                                 // Update notes (these will be set as task text!)
495                                 setExtensionUpdateNotes("Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.");
496                                 break;
497
498                         case '0.4.0': // SQL queries for v0.4.0
499                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
500
501                                 // Update notes (these will be set as task text!)
502                                 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
503                                 break;
504
505                         case '0.4.1': // SQL queries for v0.4.1
506                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `show_timings` ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
507
508                                 // Update notes (these will be set as task text!)
509                                 setExtensionUpdateNotes("Tabellen-Schl&uuml;ssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
510                                 break;
511
512                         case '0.4.2': // SQL queries for v0.4.2
513                                 // Update notes (these will be set as task text!)
514                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
515                                 break;
516
517                         case '0.4.3': // SQL queries for v0.4.3
518                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_host` VARCHAR(255) NOT NULL DEFAULT ''");
519                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_port` INT(5) UNSIGNED NOT NULL DEFAULT 0");
520                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_username` VARCHAR(255) NOT NULL DEFAULT ''");
521                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_password` VARCHAR(255) NOT NULL DEFAULT ''");
522                                 addExtensionSql("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)");
523
524                                 // Update notes (these will be set as task text!)
525                                 setExtensionUpdateNotes("Proxy-Einstellungen hinzugef&uuml;gt.");
526                                 break;
527
528                         case '0.4.4': // SQL queries for v0.4.4
529                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
530                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
531                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
532                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
533                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
534                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
535                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` DROP INDEX `what`");
536                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD UNIQUE (`what`)");
537                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `what`");
538                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD UNIQUE (`what`)");
539                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `action` (`action`)");
540                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `what`");
541                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD UNIQUE (`what`)");
542
543                                 // Update notes (these will be set as task text!)
544                                 setExtensionUpdateNotes("Schl&uuml;ssel in Admin-, Gast- und Mitgliedsmen&uuml; verbessert.");
545                                 break;
546
547                         case '0.4.5': // SQL queries for v0.4.5
548                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `last_month` CHAR(2) NOT NULL DEFAULT '00'");
549                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `last_week` CHAR(2) NOT NULL DEFAULT '00'");
550
551                                 // Update notes (these will be set as task text!)
552                                 setExtensionUpdateNotes("T&auml;glichen/w&ouml;chentlichen/monatlichen Reset verbessert.");
553                                 break;
554
555                         case '0.4.6': // SQL queries for v0.4.6
556                                 // Update notes (these will be set as task text!)
557                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
558                                 break;
559
560                         case '0.4.7': // SQL queries for v0.4.7
561                                 // Update notes (these will be set as task text!)
562                                 setExtensionUpdateNotes("Veraltetes Update.");
563                                 break;
564
565                         case '0.4.8': // SQL queries for v0.4.8
566                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)");
567
568                                 // Update notes (these will be set as task text!)
569                                 setExtensionUpdateNotes("Index f&uuml;r Betreff eingef&uuml;gt.");
570                                 break;
571
572                         case '0.4.9': // SQL queries for v0.4.9
573                                 // Update notes (these will be set as task text!)
574                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
575                                 break;
576
577                         case '0.5.0': // SQL queries for v0.5.0
578                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`");
579                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`");
580                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` (`userid`,`level`)");
581
582                                 // Update notes (these will be set as task text!)
583                                 setExtensionUpdateNotes("Referal-System unterst&uuml;tzt nun detailierte Referal-&Uuml;bersicht und vieles mehr.");
584                                 break;
585
586                         case '0.5.1': // SQL queries for v0.5.1
587                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`");
588
589                                 // Update notes (these will be set as task text!)
590                                 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmen&uuml; entfernt, welche ohnehin nicht genutzt wird.");
591                                 break;
592
593                         case '0.5.2': // SQL queries for v0.5.2
594                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000");
595
596                                 // Update notes (these will be set as task text!)
597                                 setExtensionUpdateNotes("Prozents&aum;tze k&ouml;nnen nun f&uuml;nf Stelle hinter dem Komma sein.");
598                                 break;
599
600                         case '0.5.3': // SQL queries for v0.5.3
601                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `session_save_path` VARCHAR(255) NOT NULL DEFAULT ''");
602                                 addExtensionSql("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)");
603
604                                 // Update notes (these will be set as task text!)
605                                 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com n&ouml;tig.");
606                                 break;
607
608                         case '0.5.4': // SQL queries for v0.5.4
609                                 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`) VALUES ('main','reflist','Ref-&Uuml;bersicht',5,'Y','N')");
610
611                                 // Depends on refback extension
612                                 addExtensionUpdateDependency('refback');
613
614                                 // Update notes (these will be set as task text!)
615                                 setExtensionUpdateNotes("Ref-&Uuml;bersicht eingebaut. Diese h&auml;ngt von der Erweiterung <strong>refback</strong> ab.");
616                                 break;
617
618                         case '0.5.5': // SQL queries for v0.5.5
619                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `show_points_unconfirmed` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
620
621                                 // Update notes (these will be set as task text!)
622                                 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbest&auml;tigten Mails kann nun optional abgeschaltet werden.");
623                                 break;
624
625                         case '0.5.6': // SQL queries for v0.5.6
626                                 // Update notes (these will be set as task text!)
627                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
628                                 break;
629
630                         case '0.5.7': // SQL queries for v0.5.7
631                                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
632
633                                 // Update notes (these will be set as task text!)
634                                 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&amp;mode=norefs verschoben.");
635                                 break;
636
637                         case '0.5.8': // SQL queries for v0.5.8
638                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`");
639
640                                 // Update notes (these will be set as task text!)
641                                 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
642                                 break;
643
644                         case '0.5.9': // SQL queries for v0.5.9
645                                 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_filters`");
646                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_filters` (
647 `filter_id` BIGINT(20) UNSIGNED AUTO_INCREMENT,
648 `filter_name` VARCHAR(255) NOT NULL DEFAULT '',
649 `filter_function` VARCHAR(255) NOT NULL DEFAULT '',
650 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
651 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
652 UNIQUE `name_function` (`filter_name` , `filter_function`),
653 PRIMARY KEY (`filter_id`)
654 ) TYPE={?_TABLE_TYPE?} COMMENT='Filter system'");
655                                 addExtensionSql("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)");
656
657                                 // Update notes (these will be set as task text!)
658                                 setExtensionUpdateNotes("Tabellen f&uuml;r Filter-System hinzugef&uuml;gt.");
659                                 break;
660
661                         case '0.6.0': // SQL queries for v0.6.0
662                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `update_filter_usage` ENUM('N','Y') NOT NULL DEFAULT 'N'");
663
664                                 // Update notes (these will be set as task text!)
665                                 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Z&auml;hlen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
666                                 break;
667
668                         case '0.6.1': // SQL queries for v0.6.1
669                                 // Update notes (these will be set as task text!)
670                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
671                                 break;
672
673                         case '0.6.2': // SQL queries for v0.6.2
674                                 // Depends on refback extension
675                                 addExtensionUpdateDependency('user');
676
677                                 // Update notes (these will be set as task text!)
678                                 setExtensionUpdateNotes("Abh&auml;ngigkeit von <u>ext-user</u> gesetzt.");
679                                 break;
680
681                         case '0.6.3': // SQL queries for v0.6.3
682                                 // Update notes (these will be set as task text!)
683                                 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Eintr&auml;ge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
684
685                                 // Include special filte
686                                 loadIncludeOnce('inc/fix_filters.php');
687                                 break;
688
689                         case '0.6.4': // SQL queries for v0.6.4
690                                 // Update admin menu
691                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
692                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
693                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
694                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
695
696                                 // Update notes (these will be set as task text!)
697                                 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
698                                 break;
699
700                         case '0.6.5': // SQL queries for v0.6.5
701                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `css_php` `css_php` ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
702
703                                 // Update notes (these will be set as task text!)
704                                 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
705                                 break;
706                 } // END - switch
707                 break;
708
709         case 'modify': // When the extension got modified
710                 break;
711
712         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
713                 break;
714
715         case 'init': // Do stuff when extension is initialized
716                 // Init key
717                 setConfigEntry('secret_key', '');
718
719                 // Read key from secret file
720                 if ((getConfig('file_hash') == '') || (getConfig('master_salt') == '') || (getConfig('pass_scramble') == '')) {
721                         // Cache instance
722                         // Maybe need setup of secret key!
723                         loadIncludeOnce('inc/gen_sql_patches.php');
724
725                         // @TODO Rewrite this to a filter!
726                         if ((isExtensionInstalledAndNewer('cache', '0.1.2')) && (isCacheInstanceValid())) {
727                                 // Remove extensions and mod_reg cache file
728                                 loadIncludeOnce('inc/libs/cache_functions.php');
729
730                                 // Destroy some cache files
731                                 if ($GLOBALS['cache_instance']->loadCacheFile('extension')) $GLOBALS['cache_instance']->removeCacheFile();
732                                 if ($GLOBALS['cache_instance']->loadCacheFile('modules'))   $GLOBALS['cache_instance']->removeCacheFile();
733                         } // END - if
734                 } // END - if
735
736                 // Test again
737                 if ((getConfig('file_hash') != '') && (getConfig('master_salt') != '') && (getConfig('pass_scramble') != '')) {
738                         // File hash fas generated so we can also file the secret file... hopefully.
739                         $hashFile = sprintf("%sinc/.secret/.%s", getConfig('PATH'), getConfig('file_hash'));
740                         if (isFileReadable($hashFile)) {
741                                 // Read file
742                                 setConfigEntry('secret_key', readFromFile($hashFile));
743                         } else {
744                                 // Remove it from database
745                                 updateConfiguration('file_hash', '');
746
747                                 // Cannot read secret file!
748                                 app_die(__FILE__, __LINE__, "Cannot read secret file! Please try to reload");
749                         }
750                 } // END - if
751
752                 // Transfer words/numbers to constants
753                 setConfigEntry('POINTS'  , getConfig('points_word'));
754                 break;
755
756         default: // Unknown extension mode
757                 DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));
758                 break;
759 } // END - switch
760
761 // [EOF]
762 ?>