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