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