Introduced wrapper function addCreateTableSql(), fixed parameter order:
[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  * -------------------------------------------------------------------- *
18  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
19  * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
20  * For more information visit: http://www.mxchange.org                  *
21  *                                                                      *
22  * This program is free software; you can redistribute it and/or modify *
23  * it under the terms of the GNU General Public License as published by *
24  * the Free Software Foundation; either version 2 of the License, or    *
25  * (at your option) any later version.                                  *
26  *                                                                      *
27  * This program is distributed in the hope that it will be useful,      *
28  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
29  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
30  * GNU General Public License for more details.                         *
31  *                                                                      *
32  * You should have received a copy of the GNU General Public License    *
33  * along with this program; if not, write to the Free Software          *
34  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
35  * MA  02110-1301  USA                                                  *
36  ************************************************************************/
37
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
40         die();
41 } // END - if
42
43 // Version number
44 setThisExtensionVersion('0.7.7');
45
46 // Version history array (add more with , '0.1.0' and so on)
47 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', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7'));
48
49 // Keep this extension always active!
50 setExtensionAlwaysActive('Y');
51
52 switch (getExtensionMode()) {
53         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
54                 // This depends on 'cache' now
55                 addExtensionDependency('cache');
56                 break;
57
58         case 'remove': // Do stuff when removing extension
59                 // Drop tables
60                 addDropTableSql('admin_menu_las');
61                 addDropTableSql('admin_menu_las_data');
62                 addDropTableSql('admin_las_stats');
63                 addDropTableSql('filters');
64                 addDropTableSql('dns_cache');
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)) OR
87 `action`='earn'");
88                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='main' WHERE
89 `action`='stats' OR
90 `action`='extras' OR
91 `action`='rals' OR
92 `action`='account'");
93
94                 // Unregister filter
95                 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', true, isExtensionDryRun());
96                 break;
97
98         case 'activate': // Do stuff when admin activates this extension
99                 // SQL commands to run
100                 addExtensionSql('');
101                 break;
102
103         case 'deactivate': // Do stuff when admin deactivates this extension
104                 // SQL commands to run
105                 addExtensionSql('');
106                 break;
107
108         case 'update': // Update an extension
109                 switch (getCurrentExtensionVersion()) {
110                         case '0.0.1': // SQL queries for v0.0.1
111                                 addConfigAddSql('ext_autopurge', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
112                                 addAdminMenuSql('setup','config_extensions','Erweitungsmanagement','Alle Einstellungen am Erweiterungsmanagement.', 10);
113
114                                 // Update notes (these will be set as task text!)
115                                 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.");
116                                 break;
117
118                         case '0.0.2': // SQL queries for v0.0.2
119                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `auto_purge` `auto_purge` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getOneDay()*14)."");
120
121                                 // Update notes (these will be set as task text!)
122                                 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.)");
123                                 break;
124
125                         case '0.0.3': // SQL queries for v0.0.3
126                                 addConfigAddSql('points_word', "VARCHAR(255) NOT NULL DEFAULT 'Punkte'");
127
128                                 // Update notes (these will be set as task text!)
129                                 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.");
130                                 break;
131
132                         case '0.0.4': // SQL queries for v0.0.4
133                                 addConfigAddSql('mails_page', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
134
135                                 // Update notes (these will be set as task text!)
136                                 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugef&uuml;gt.");
137                                 break;
138
139                         case '0.0.5': // SQL queries for v0.0.5
140                                 addConfigAddSql('index_home', "VARCHAR(255) NOT NULL DEFAULT 'welcome'");
141                                 addAdminMenuSql('setup','config_home','Home-Seite festlegen','Stellen Sie hier ein, welcher Men&uuml;punkt (what-welcome ist Standard) als Einstiegspunkt in das Men&uuml;system genutzt werden soll.', 5);
142
143                                 // Update notes (these will be set as task text!)
144                                 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die &quot;Home&quot;-Seite (Eingangsseite). Dies kann nun per Datenbank ge&auml;ndert werden.");
145                                 break;
146
147                         case '0.0.6': // SQL queries for v0.0.6
148                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'N'");
149
150                                 // Update notes (these will be set as task text!)
151                                 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.");
152                                 break;
153
154                         case '0.0.7': // SQL queries for v0.0.7
155                                 addConfigAddSql('verbose_sql', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
156
157                                 // Update notes (these will be set as task text!)
158                                 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
159                                 break;
160
161                         case '0.0.8': // SQL queries for v0.0.8
162                                 addConfigAddSql('menu_blur_spacer', "VARCHAR(255) NOT NULL DEFAULT '&nbsp;<strong><big>&middot;</big></strong>&nbsp;'");
163
164                                 // Update notes (these will be set as task text!)
165                                 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
166                                 break;
167
168                         case '0.0.9': // SQL queries for v0.0.9
169                                 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);
170
171                                 // Update notes (these will be set as task text!)
172                                 setExtensionUpdateNotes("Unbest&auml;tigte Maillinks k&ouml;nnen unter Email-Management -&gt; Unbest. Mails auflisten aufgelistet werden.");
173                                 break;
174
175                         case '0.1.0': // SQL queries for v0.2.1
176                                 addConfigAddSql('reg_points_mode', "ENUM('ref','direct') NOT NULL DEFAULT 'ref'");
177
178                                 // Update notes (these will be set as task text!)
179                                 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?");
180                                 break;
181
182                         case '0.1.1': // SQL queries for v0.1.1
183                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Home-/Eingangsseite', descr='Stellen Sie hier ein, welcher Men&uuml;punkt (what-welcome ist Standard) 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");
184                                 addConfigAddSql('index_delay', "TINYINT(3) NOT NULL DEFAULT 0");
185                                 addConfigAddSql('index_cookie', "BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getOneDay()*365)."");
186
187                                 // Update notes (these will be set as task text!)
188                                 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.");
189                                 break;
190
191                         case '0.1.2': // SQL queries for v0.1.2
192                                 addAdminMenuSql('setup','config_refid','Standard-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);
193                                 addConfigAddSql('def_refid', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
194
195                                 // Update notes (these will be set as task text!)
196                                 setExtensionUpdateNotes("Standard Referal-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
197                                 break;
198
199                         case '0.1.3': // SQL queries for v0.1.3
200                                 addConfigAddSql('refid_target', "ENUM('register','index') NOT NULL DEFAULT 'register'");
201
202                                 // Update notes (these will be set as task text!)
203                                 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
204                                 break;
205
206                         case '0.1.4': // SQL queries for v0.1.4
207                                 // Update notes (these will be set as task text!)
208                                 setExtensionUpdateNotes("Ung&uuml;ltiges Update (nach ext-theme.php verschoben!).");
209                                 break;
210
211                         case '0.1.5': // SQL queries for v0.1.5
212                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP ext_has_admin");
213
214                                 // Update notes (these will be set as task text!)
215                                 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
216                                 break;
217
218                         case '0.1.6': // SQL queries for v0.1.6
219                                 addConfigAddSql('enable_title_deco', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
220                                 addConfigAddSql('title_left', "VARCHAR(10) NOT NULL DEFAULT '[--'");
221                                 addConfigAddSql('title_middle', "VARCHAR(10) NOT NULL DEFAULT '-'");
222                                 addConfigAddSql('title_right', "VARCHAR(10) NOT NULL DEFAULT '--]'");
223                                 addConfigAddSql('enable_mod_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
224                                 addConfigAddSql('enable_what_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
225                                 addAdminMenuSql('setup','config_title','Seitentitel &auml;ndern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
226
227                                 // Update notes (these will be set as task text!)
228                                 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.");
229                                 break;
230
231                         case '0.1.7': // SQL queries for v0.1.7
232                                 // Update notes (these will be set as task text!)
233                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
234                                 break;
235
236                         case '0.1.8': // SQL queries for v0.1.8
237                                 // Update notes (these will be set as task text!)
238                                 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
239                                 break;
240
241                         case '0.1.9': // SQL queries for v0.1.9
242                                 // Update notes (these will be set as task text!)
243                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
244                                 break;
245
246                         case '0.2.0': // SQL queries for v0.2.0
247                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_jackpot` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
248
249                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `payment` `payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
250                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `price` `price` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
251
252                                 // Update notes (these will be set as task text!)
253                                 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
254                                 break;
255
256                         case '0.2.1': // SQL queries for v0.2.1
257                                 addConfigAddSql('css_php', "ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
258
259                                 // Update notes (these will be set as task text!)
260                                 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
261                                 break;
262
263                         case '0.2.2': // SQL queries for v0.2.2
264                                 // Update notes (these will be set as task text!)
265                                 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
266                                 break;
267
268                         case '0.2.3': // SQL queries for v0.2.3
269                                 addConfigAddSql('guest_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
270                                 addConfigAddSql('member_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
271                                 addConfigAddSql('youre_here', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
272
273                                 // Update notes (these will be set as task text!)
274                                 setExtensionUpdateNotes("Gast- und Mitgliedsmen&uuml;s lassen sich getrennt voneinander abschalten.");
275                                 break;
276
277                         case '0.2.4': // SQL queries for v0.2.4
278                                 // PNG image is the default
279                                 $auto_type = 'png';
280
281                                 // Is the JPEG file found and required PHP function there?
282                                 if ((isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
283                                         // Switch to JPEG format
284                                         $auto_type = 'jpg';
285                                 } // END - if
286                                 addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
287
288                                 // Update notes (these will be set as task text!)
289                                 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.");
290                                 break;
291
292                         case '0.2.5': // SQL queries for v0.2.5
293                                 // Update notes (these will be set as task text!)
294                                 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
295                                 break;
296
297                         case '0.2.6': // SQL queries for v0.2.6
298                                 addAdminMenuSql('user','sub_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen','Allen oder einem Mitglied {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen.', 8);
299
300                                 // Update notes (these will be set as task text!)
301                                 setExtensionUpdateNotes("Abzug von {?POINTS?} nun m&ouml;glich.");
302                                 break;
303
304                         case '0.2.7': // SQL queries for v0.2.7
305                                 addConfigAddSql('stats_limit', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
306                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
307
308                                 // Update notes (these will be set as task text!)
309                                 setExtensionUpdateNotes("<ol>
310 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
311 <li>Mitgliederstatistik mit Seitennavigation.</li>
312 </ol>");
313                                 break;
314
315                         case '0.2.8': // SQL queries for v0.2.8
316                                 // Update notes (these will be set as task text!)
317                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
318                                 break;
319
320                         case '0.2.9': // SQL queries for v0.2.9
321                                 addConfigAddSql('mt_word', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
322                                 addConfigAddSql('mt_word2', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
323                                 addConfigAddSql('mt_word3', "VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
324
325                                 // Update notes (these will be set as task text!)
326                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
327                                 break;
328
329                         case '0.3.0': // SQL queries for v0.3.0
330                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
331                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailverg&uuml;tungen...' WHERE `what`='payments' LIMIT 1");
332
333                                 // Update notes (these will be set as task text!)
334                                 setExtensionUpdateNotes("Zwei Men&uuml;punkte umbenannt.");
335                                 break;
336
337                         case '0.3.1': // SQL queries for v0.3.1
338                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD UNIQUE KEY `ext_name` (`ext_name`)");
339                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD UNIQUE KEY `login` (`login`)");
340                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` ADD INDEX `visible` (`visible`)");
341                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` ADD UNIQUE KEY `level` (`level`)");
342                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD INDEX `level` (`level`)");
343                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD INDEX `data_type` (`data_type`)");
344                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD UNIQUE KEY `module` (`module`)");
345                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `action` (`action`)");
346                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `what` (`what`)");
347                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_type` (`task_type`)");
348                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `status` (`status`)");
349                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_created` (`task_created`)");
350                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD FULLTEXT `subject` (`subject`)");
351                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `subject` (`subject`)");
352                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD INDEX `ext_active` (`ext_active`)");
353                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `action` (`action`)");
354                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `what` (`what`)");
355                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `sort` (`sort`)");
356                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `visible` (`visible`)");
357                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `locked` (`locked`)");
358                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `what` (`what`)");
359                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `sort` (`sort`)");
360                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `visible` (`visible`)");
361                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `locked` (`locked`)");
362                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `visible` (`visible`)");
363                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `sort` (`sort`)");
364
365                                 // Update notes (these will be set as task text!)
366                                 setExtensionUpdateNotes("Eindeutige Schl&uuml;ssel (UNIQUE KEY) und normale Schl&uuml;ssel (INDEX) gesetzt.");
367                                 break;
368
369                         case '0.3.2': // SQL queries for v0.3.2
370                                 // Connection table between the menu system and the "logical area system"
371                                 addDropTableSql('admin_menu_las');
372                                 addCreateTableSql('admin_menu_las', "(
373 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
374 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
375 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
376 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
377 INDEX (`la_id`),
378 INDEX (`la_action`),
379 INDEX (`la_what`),
380 PRIMARY KEY (`id`)
381 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Menu system -> LAS'");
382                                 // All "logical areas" together
383                                 addDropTableSql('admin_menu_las_data');
384                                 addCreateTableSql('admin_menu_las_data', "(
385 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
386 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
387 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
388 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
389 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
390 UNIQUE KEY (`la_id`),
391 INDEX (`la_posx`),
392 INDEX (`la_posy`),
393 PRIMARY KEY (`id`)
394 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'LAS position and title data'");
395                                 // Which menu do you like?
396                                 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
397
398                                 // Insert menus
399                                 addAdminMenuSql('setup','config_admin','Adminmen&uuml;','Diverse Einstellungen am Adminmen&uuml; vornehmen.', 9);
400
401                                 // Update notes (these will be set as task text!)
402                                 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.");
403                                 break;
404
405                         case '0.3.3': // SQL queries for v0.3.3
406                                 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
407                                 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
408
409                                 // The statistics table
410                                 addDropTableSql('admin_las_stats');
411                                 addCreateTableSql('admin_las_stats', "(
412 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
413 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
414 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
415 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
416 INDEX (`admin_id`),
417 PRIMARY KEY (`id`)
418 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'LAS click data'");
419
420                                 // Update notes (these will be set as task text!)
421                                 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.");
422                                 break;
423
424                         case '0.3.4': // SQL queries for v0.3.4
425                                 // Update notes (these will be set as task text!)
426                                 setExtensionUpdateNotes("Veraltetes Update (what=list_user&amp;mode=noref)");
427                                 break;
428
429                         case '0.3.5': // SQL queries for v0.3.5
430                                 // List accounts with no referal
431                                 addMemberMenuSql('stats',NULL,'Statistiken','Y','N',4);
432                                 addMemberMenuSql('stats','stats2','Framekiller-Mails','Y','N',2);
433                                 addMemberMenuSql('extras',NULL,'Extras','Y','N',5);
434                                 addMemberMenuSql('rals',NULL,'Rallyes','Y','N',6);
435                                 addMemberMenuSql('account',NULL,'Ihr Account','Y','N',7);
436                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`=1, `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
437                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=3 WHERE `what`='reflinks' LIMIT 1");
438
439                                 // Update notes (these will be set as task text!)
440                                 setExtensionUpdateNotes("Mitgliedsmen&uuml; komplett umgebaut.");
441                                 break;
442
443                         case '0.3.6': // SQL queries for v0.3.6
444                                 addConfigAddSql('salt_length', "TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
445                                 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
446                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` MODIFY `password` VARCHAR(255) NOT NULL DEFAULT ''");
447                                 addConfigAddSql('rand_no', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
448                                 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
449                                 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
450                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
451                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
452                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
453
454                                 // Update notes (these will be set as task text!)
455                                 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
456                                 break;
457
458                         case '0.3.7': // SQL queries for v0.3.7
459                                 setExtensionUpdateNotes("Problem w&auml;hrend des Installationsvorganges behoben.");
460                                 break;
461
462                         case '0.3.8': // SQL queries for v0.3.8
463                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
464                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
465
466                                 // Update notes (these will be set as task text!)
467                                 setExtensionUpdateNotes("Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.");
468                                 break;
469
470                         case '0.3.9': // SQL queries for v0.3.9
471                                 // Update notes (these will be set as task text!)
472                                 setExtensionUpdateNotes("Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.");
473                                 break;
474
475                         case '0.4.0': // SQL queries for v0.4.0
476                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
477
478                                 // Update notes (these will be set as task text!)
479                                 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
480                                 break;
481
482                         case '0.4.1': // SQL queries for v0.4.1
483                                 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
484
485                                 // Update notes (these will be set as task text!)
486                                 setExtensionUpdateNotes("Tabellen-Schl&uuml;ssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
487                                 break;
488
489                         case '0.4.2': // SQL queries for v0.4.2
490                                 // Update notes (these will be set as task text!)
491                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
492                                 break;
493
494                         case '0.4.3': // SQL queries for v0.4.3
495                                 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
496                                 addConfigAddSql('proxy_port', "INT(5) UNSIGNED NOT NULL DEFAULT 0");
497                                 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
498                                 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
499                                 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);
500
501                                 // Update notes (these will be set as task text!)
502                                 setExtensionUpdateNotes("Proxy-Einstellungen hinzugef&uuml;gt.");
503                                 break;
504
505                         case '0.4.4': // SQL queries for v0.4.4
506                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
507                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
508                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
509                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
510                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
511                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
512
513                                 // Make this depending on ext-menu
514                                 addExtensionDependency('menu');
515
516                                 // Update notes (these will be set as task text!)
517                                 setExtensionUpdateNotes("Schl&uuml;ssel in Admin-, Gast- und Mitgliedsmen&uuml; verbessert.");
518                                 break;
519
520                         case '0.4.5': // SQL queries for v0.4.5
521                                 addConfigAddSql('last_month', "CHAR(2) NOT NULL DEFAULT '00'");
522                                 addConfigAddSql('last_week', "CHAR(2) NOT NULL DEFAULT '00'");
523
524                                 // Update notes (these will be set as task text!)
525                                 setExtensionUpdateNotes("T&auml;glichen/w&ouml;chentlichen/monatlichen Reset verbessert.");
526                                 break;
527
528                         case '0.4.6': // SQL queries for v0.4.6
529                                 // Update notes (these will be set as task text!)
530                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
531                                 break;
532
533                         case '0.4.7': // SQL queries for v0.4.7
534                                 // Update notes (these will be set as task text!)
535                                 setExtensionUpdateNotes("Veraltetes Update.");
536                                 break;
537
538                         case '0.4.8': // SQL queries for v0.4.8
539                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)");
540
541                                 // Update notes (these will be set as task text!)
542                                 setExtensionUpdateNotes("Index f&uuml;r Betreff eingef&uuml;gt.");
543                                 break;
544
545                         case '0.4.9': // SQL queries for v0.4.9
546                                 // Update notes (these will be set as task text!)
547                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
548                                 break;
549
550                         case '0.5.0': // SQL queries for v0.5.0
551                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`");
552                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`");
553                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` (`userid`,`level`)");
554
555                                 // Update notes (these will be set as task text!)
556                                 setExtensionUpdateNotes("Referal-System unterst&uuml;tzt nun detailierte Referal-&Uuml;bersicht und vieles mehr.");
557                                 break;
558
559                         case '0.5.1': // SQL queries for v0.5.1
560                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`");
561
562                                 // Update notes (these will be set as task text!)
563                                 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmen&uuml; entfernt, welche ohnehin nicht genutzt wird.");
564                                 break;
565
566                         case '0.5.2': // SQL queries for v0.5.2
567                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000");
568
569                                 // Update notes (these will be set as task text!)
570                                 setExtensionUpdateNotes("Prozents&auml;tze k&ouml;nnen nun f&uuml;nf Stellen hinter dem Komma sein.");
571                                 break;
572
573                         case '0.5.3': // SQL queries for v0.5.3
574                                 addConfigAddSql('session_save_path', "VARCHAR(255) NOT NULL DEFAULT ''");
575                                 addAdminMenuSql('setup','config_session','Session-Einstellungen','&Auml;ndern Sie hier den Speicherpfad f&uuml;r Sessiondateien (Sitzungsdateien) ab, falls die Standard-Einstellung bei Ihrem Hoster zu Problem f&uuml;hren sollte.', 16);
576
577                                 // Update notes (these will be set as task text!)
578                                 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com n&ouml;tig.");
579                                 break;
580
581                         case '0.5.4': // SQL queries for v0.5.4
582                                 addMemberMenuSql('main','reflist','Ref-&Uuml;bersicht','N','Y',5);
583
584                                 // Depends on refback extension
585                                 addExtensionDependency('refback');
586
587                                 // Update notes (these will be set as task text!)
588                                 setExtensionUpdateNotes("Ref-&Uuml;bersicht eingebaut. Diese h&auml;ngt von der Erweiterung <strong>refback</strong> ab.");
589                                 break;
590
591                         case '0.5.5': // SQL queries for v0.5.5
592                                 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
593
594                                 // Update notes (these will be set as task text!)
595                                 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbest&auml;tigten Mails kann nun optional abgeschaltet werden.");
596                                 break;
597
598                         case '0.5.6': // SQL queries for v0.5.6
599                                 // Update notes (these will be set as task text!)
600                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
601                                 break;
602
603                         case '0.5.7': // SQL queries for v0.5.7
604                                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
605
606                                 // Update notes (these will be set as task text!)
607                                 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&amp;mode=norefs verschoben.");
608                                 break;
609
610                         case '0.5.8': // SQL queries for v0.5.8
611                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`");
612
613                                 // Update notes (these will be set as task text!)
614                                 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
615                                 break;
616
617                         case '0.5.9': // SQL queries for v0.5.9
618                                 addDropTableSql('filters');
619                                 addCreateTableSql('filters', "(
620 `filter_id` BIGINT(20) UNSIGNED AUTO_INCREMENT,
621 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
622 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
623 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
624 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
625 UNIQUE `name_function` (`filter_name` , `filter_function`),
626 PRIMARY KEY (`filter_id`)
627 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Filter system'");
628                                 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und l&auml;sst diese de- bzw. wieder aktivieren.', 17);
629
630                                 // Update notes (these will be set as task text!)
631                                 setExtensionUpdateNotes("Tabellen f&uuml;r Filter-System hinzugef&uuml;gt.");
632                                 break;
633
634                         case '0.6.0': // SQL queries for v0.6.0
635                                 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
636
637                                 // Update notes (these will be set as task text!)
638                                 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Z&auml;hlen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
639                                 break;
640
641                         case '0.6.1': // SQL queries for v0.6.1
642                                 // Update notes (these will be set as task text!)
643                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
644                                 break;
645
646                         case '0.6.2': // SQL queries for v0.6.2
647                                 // Depends on refback extension
648                                 addExtensionDependency('user');
649
650                                 // Update notes (these will be set as task text!)
651                                 setExtensionUpdateNotes("Abh&auml;ngigkeit von <u>ext-user</u> gesetzt.");
652                                 break;
653
654                         case '0.6.3': // SQL queries for v0.6.3
655                                 // Update notes (these will be set as task text!)
656                                 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Eintr&auml;ge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
657
658                                 // Add special fix include to fix filters
659                                 addIncludeToPool('extension', 'inc/fix_filters.php');
660                                 break;
661
662                         case '0.6.4': // SQL queries for v0.6.4
663                                 // Update admin menu
664                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
665                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
666                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
667                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
668
669                                 // Update notes (these will be set as task text!)
670                                 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
671                                 break;
672
673                         case '0.6.5': // SQL queries for v0.6.5
674                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `css_php` `css_php` ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
675
676                                 // Update notes (these will be set as task text!)
677                                 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
678                                 break;
679
680                         case '0.6.6': // SQL queries for v0.6.6
681                                 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
682                                 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
683                                 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
684
685                                 // Update notes (these will be set as task text!)
686                                 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
687                                 break;
688
689                         case '0.6.7': // SQL queries for v0.6.7
690                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `index_delay` `index_delay` TINYINT(3) NOT NULL DEFAULT 0");
691                                 // Update notes (these will be set as task text!)
692                                 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
693                                 break;
694
695                         case '0.6.8': // SQL queries for v0.6.8
696                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
697                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
698                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
699                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
700                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
701                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
702
703                                 // Update notes (these will be set as task text!)
704                                 setExtensionUpdateNotes("Spalten verk&uuml;rzt, damit die Schl&uuml;ssel passen.");
705                                 break;
706
707                         case '0.6.9': // SQL queries for 0.6.9
708                                 // Register filter
709                                 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
710
711                                 // Update notes (these will be set as task text!)
712                                 setExtensionUpdateNotes("Filter zum Zur&uuml;cksetzens des fehlgeschlagenen Mitgliederlogins hinzugef&uuml;gt (internes TODO).");
713                                 break;
714
715                         case '0.7.0': // SQL queries for 0.7.0
716                                 // Table definition
717                                 addDropTableSql('dns_cache');
718                                 addCreateTableSql('dns_cache', "(
719 `hostname` VARCHAR(255) NOT NULL,
720 `ip` VARCHAR(15) NOT NULL,
721 `added` DATETIME NOT NULL,
722 PRIMARY KEY (`hostname`),
723 INDEX (`ip`)
724 ) ENGINE = {?_TABLE_TYPE?}");
725
726                                 // Configuration
727                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `dns_cache_timeout` BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
728
729                                 // Register filter
730                                 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
731
732                                 // Update notes (these will be set as task text!)
733                                 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugef&uuml;gt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
734                                 break;
735
736                         case '0.7.1': // SQL queries for v0.7.1
737                                 // This update just depends on ext-timezone to make integration of an essential extension much easier
738                                 addExtensionDependency('timezone');
739
740                                 // Update notes (these will be set as task text!)
741                                 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
742                                 break;
743
744                         case '0.7.2': // SQL queries for v0.7.2
745                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
746
747                                 // Update notes (these will be set as task text!)
748                                 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
749                                 break;
750
751                         case '0.7.3': // SQL queries for v0.7.3
752                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_name` `filter_name` VARCHAR(50) NOT NULL DEFAULT ''");
753                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_function` `filter_function` VARCHAR(100) NOT NULL DEFAULT ''");
754
755                                 // Update notes (these will be set as task text!)
756                                 setExtensionUpdateNotes("Spalten in Filtertabelle gek&uuml;rzt (SQL-Fehler wegen zu grossem Schl&uuml;ssel).");
757                                 break;
758
759                         case '0.7.4': // SQL queries for v0.7.4
760                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
761
762                                 // Update notes (these will be set as task text!)
763                                 setExtensionUpdateNotes("Spalten in Filtertabelle gek&uuml;rzt (SQL-Fehler wegen zu grossem Schl&uuml;ssel).");
764                                 break;
765
766                         case '0.7.5': // SQL queries for v0.7.5
767                                 addConfigAddSql('last_hour', "TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00");
768
769                                 // Update notes (these will be set as task text!)
770                                 setExtensionUpdateNotes("Aktuelle Stunde hinzugef&uuml;gt (ist nicht konfigurierbar).");
771                                 break;
772
773                         case '0.7.6': // SQL queries for v0.7.6
774                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `last_month` `last_month` TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00");
775                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `last_week` `last_week` TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00");
776
777                                 // Update notes (these will be set as task text!)
778                                 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
779                                 break;
780
781                         case '0.7.7': // SQL queries for v0.7.7
782                                 addMemberMenuSql('earn',NULL,'Verdienen','Y','N',2);
783                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn', `sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
784
785                                 // Update notes (these will be set as task text!)
786                                 setExtensionUpdateNotes("Men&uuml;punkt <strong>Verdienen</strong> hinzugef&uuml;gt und <strong>Unbest&auml;tigte Mails</strong> als ersten Punkt dort hin verschoben.");
787                                 break;
788                 } // END - switch
789                 break;
790
791         case 'modify': // When the extension got modified
792                 break;
793
794         case 'test': // For testing purposes
795                 break;
796
797         case 'init': // Do stuff when extension is initialized
798                 // Init key
799                 setConfigEntry('secret_key', '');
800
801                 // Read key from secret file
802                 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
803                         // Maybe need setup of secret key!
804                         loadIncludeOnce('inc/gen_sql_patches.php');
805                 } // END - if
806
807                 // Test again
808                 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
809                         // File hash fas generated so we can also file the secret file... hopefully.
810                         $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
811                         if (isFileReadable($hashFile)) {
812                                 // Read file
813                                 setConfigEntry('secret_key', readFromFile($hashFile));
814                         } else {
815                                 // Remove it from database
816                                 updateConfiguration('file_hash', '');
817
818                                 // Cannot read secret file!
819                                 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
820                         }
821                 } // END - if
822
823                 // Transfer words/numbers to constants if config entry is found
824                 if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
825                         setConfigEntry('POINTS', getPointsWord());
826                 } // END - if
827                 break;
828
829         default: // Unknown extension mode
830                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
831                 break;
832 } // END - switch
833
834 // [EOF]
835 ?>