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