2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 08/21/2004 *
4 * =================== Last change: 12/04/2004 *
6 * -------------------------------------------------------------------- *
7 * File : ext-sql_patches.php *
8 * -------------------------------------------------------------------- *
9 * Short description : SQL fixes for pro versions *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Ausgelagertes "Profildaten aendern" *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009, 2010 by Mailer Developer Team *
20 * For more information visit: http://www.mxchange.org *
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. *
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. *
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, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
44 setThisExtensionVersion('0.7.2');
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'));
49 // Keep this extension always active!
50 setExtensionAlwaysActive('Y');
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');
58 case 'remove': // Do stuff when removing extension
60 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las`');
61 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las_data`');
62 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_stats`');
63 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_filters`');
64 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_dns_cache`');
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'");
79 // Delete/update member menu entries
80 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE
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
94 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', true, isExtensionDryRun());
97 case 'activate': // Do stuff when admin activates this extension
98 // SQL commands to run
102 case 'deactivate': // Do stuff when admin deactivates this extension
103 // SQL commands to run
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);
113 // Update notes (these will be set as task text!)
114 setExtensionUpdateNotes("Es kann nun bestimmt werden, ob vom Server gelöschte ext-xxx.php erkannt werden sollen und die verknüpften Daten auch aus der Datenbank entfernt werden sollen.");
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 ".(getConfig('ONE_DAY')*14)."");
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öschen von Bestätigungsmails angepasst werden (war auf dem Testsystem auf TINYINT(4) gesetzt.)");
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'");
127 // Update notes (these will be set as task text!)
128 setExtensionUpdateNotes("Das Wort "Punkte" kann nun per Datenbank geändert werden. Damit können Sie anstelle des Wortes Punkte auch Klammlose, Wernis, Primera oder € schreiben.");
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");
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ügt.");
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üpunkt (what-welcome ist Standart) als Einstiegspunkt in das Menüsystem genutzt werden soll.', 5);
142 // Update notes (these will be set as task text!)
143 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
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'");
149 // Update notes (these will be set as task text!)
150 setExtensionUpdateNotes("Es können nun SQL-Updates von einander abhängig gemacht werden und die CSS-Datei kann per Admin-Bereich (wegen Debuggings) ein- bzw. ausgeschaltet werden.");
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'");
156 // Update notes (these will be set as task text!)
157 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
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 ' <strong><big>·</big></strong> '");
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!)");
167 case '0.0.9': // SQL queries for v0.0.9
168 addAdminMenuSql('email','list_unconfirmed','Unbest. Mails auflisten','Schauen Sie sich hier unbestätigte Maillinks an. Bitte diesen Link nur über dem EMail-Archiv oder EMail-Details aufrufen, direkt aufgerufen bekommen Sie eine Fehlermeldung.', 8);
170 // Update notes (these will be set as task text!)
171 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
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'");
177 // Update notes (these will be set as task text!)
178 setExtensionUpdateNotes("Soll der einmalige Ref-Bonus über das Referal-System (also alle oberen Refs bekommen auch etwas davon ab) oder direkt dem Werber aufgebucht werden?");
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üpunkt (what-welcome ist Standart) als Einstiegspunkt in das Menü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 ".(getConfig('ONE_DAY')*365)."");
186 // Update notes (these will be set as task text!)
187 setExtensionUpdateNotes("Sie können nun <a href=\"{%url=modules.php?module=admin&what=config_home%}\">hier</a> die Verzögerungszeit in der <a href=\"{%url=index.php%}\">Eingangsseite</a> einstellen.");
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");
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.)");
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'");
201 // Update notes (these will be set as task text!)
202 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
205 case '0.1.4': // SQL queries for v0.1.4
206 // Update notes (these will be set as task text!)
207 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
210 case '0.1.5': // SQL queries for v0.1.5
211 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP ext_has_admin");
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.");
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 ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
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ügt werden.");
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.");
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");
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.");
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");
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");
251 // Update notes (these will be set as task text!)
252 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
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'");
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.");
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.");
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'");
272 // Update notes (these will be set as task text!)
273 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
276 case '0.2.4': // SQL queries for v0.2.4
277 $auto_type = 'png'; // PNG image is the default
278 if ((isIncludeReadable('theme/'.getCurrentTheme().'/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
279 // Switch to JPEG format
282 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `img_type` ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
284 // Update notes (these will be set as task text!)
285 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
288 case '0.2.5': // SQL queries for v0.2.5
289 // Update notes (these will be set as task text!)
290 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
293 case '0.2.6': // SQL queries for v0.2.6
294 addAdminMenuSql('user','sub_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen','Allen oder einem Mitglied {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen.', 8);
296 // Update notes (these will be set as task text!)
297 setExtensionUpdateNotes("Abzug von {?POINTS?} nun möglich.");
300 case '0.2.7': // SQL queries for v0.2.7
301 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `stats_limit` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
302 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
304 // Update notes (these will be set as task text!)
305 setExtensionUpdateNotes("<ol>
306 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
307 <li>Mitgliederstatistik mit Seitennavigation.</li>
311 case '0.2.8': // SQL queries for v0.2.8
312 // Update notes (these will be set as task text!)
313 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
316 case '0.2.9': // SQL queries for v0.2.9
317 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mt_word` VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
318 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mt_word2` VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
319 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mt_word3` VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
321 // Update notes (these will be set as task text!)
322 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
325 case '0.3.0': // SQL queries for v0.3.0
326 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
327 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailvergütungen...' WHERE `what`='payments' LIMIT 1");
329 // Update notes (these will be set as task text!)
330 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
333 case '0.3.1': // SQL queries for v0.3.1
334 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD UNIQUE KEY `ext_name` (`ext_name`)");
335 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD UNIQUE KEY `login` (`login`)");
336 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` ADD INDEX `visible` (`visible`)");
337 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` ADD UNIQUE KEY `level` (`level`)");
338 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD INDEX `level` (`level`)");
339 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD INDEX `data_type` (`data_type`)");
340 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD UNIQUE KEY `module` (`module`)");
341 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `action` (`action`)");
342 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `what` (`what`)");
343 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_type` (`task_type`)");
344 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `status` (`status`)");
345 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_created` (`task_created`)");
346 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD FULLTEXT `subject` (`subject`)");
347 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `subject` (`subject`)");
348 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD INDEX `ext_active` (`ext_active`)");
349 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `action` (`action`)");
350 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `what` (`what`)");
351 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `sort` (`sort`)");
352 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `visible` (`visible`)");
353 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `locked` (`locked`)");
354 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `what` (`what`)");
355 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `sort` (`sort`)");
356 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `visible` (`visible`)");
357 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `locked` (`locked`)");
358 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `visible` (`visible`)");
359 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `sort` (`sort`)");
361 // Update notes (these will be set as task text!)
362 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE KEY) und normale Schlüssel (INDEX) gesetzt.");
365 case '0.3.2': // SQL queries for v0.3.2
366 // Connection table between the menu system and the "logical area" system
367 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las`');
368 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_admin_menu_las` (
369 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
370 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
371 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
372 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
377 ) TYPE={?_TABLE_TYPE?}");
378 // All "logical areas" together
379 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las_data`');
380 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_admin_menu_las_data` (
381 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
382 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
383 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
384 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
385 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
386 UNIQUE KEY (`la_id`),
390 ) TYPE={?_TABLE_TYPE?}");
391 // Which menu do you like?
392 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `admin_menu` ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
395 addAdminMenuSql('setup','config_admin','Adminmenü','Diverse Einstellungen am Adminmenü vornehmen.', 9);
397 // Update notes (these will be set as task text!)
398 setExtensionUpdateNotes("Logische Bereiche (Logical Areas = LAs) eingeführt. Dadurch wird das immer stärker anwachsende Admin-Menü in grosse Hauptgruppen unterteilt, wodurch ein Auffinden von Menüpunkten verbessert wird.");
401 case '0.3.3': // SQL queries for v0.3.3
402 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
403 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `admin_menu_sorter` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
405 // The statistics table
406 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_stats`');
407 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_admin_menu_stats` (
408 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
409 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
410 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
411 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
414 ) TYPE={?_TABLE_TYPE?}");
416 // Update notes (these will be set as task text!)
417 setExtensionUpdateNotes("Admin-abhängig werden nun Klicks im Admin-Menü gezählt, die zur automatischen Anpassung des Menüs in den logischen Bereichen diennen. Dieses "intelligente Unbauen" können Sie auch ganz abschalten.");
420 case '0.3.4': // SQL queries for v0.3.4
421 // Update notes (these will be set as task text!)
422 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
425 case '0.3.5': // SQL queries for v0.3.5
426 // List accounts with no referal
427 addMemberMenuSql('stats',NULL,'Statistiken','Y','N',4);
428 addMemberMenuSql('stats','stats2','Framekiller-Mails','Y','N',2);
429 addMemberMenuSql('extras',NULL,'Extras','Y','N',5);
430 addMemberMenuSql('rals',NULL,'Rallyes','Y','N',6);
431 addMemberMenuSql('account',NULL,'Ihr Account','Y','N',7);
432 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`=1, `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
433 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=3 WHERE `what`='reflinks' LIMIT 1");
435 // Update notes (these will be set as task text!)
436 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
439 case '0.3.6': // SQL queries for v0.3.6
440 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `salt_length` TINYINT(3) UNSIGNED NOT NULL DEFAULT 9");
441 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `pass_scramble` VARCHAR(255) NOT NULL DEFAULT ''");
442 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` MODIFY `password` VARCHAR(255) NOT NULL DEFAULT ''");
443 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `rand_no` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
444 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `file_hash` VARCHAR(255) NOT NULL DEFAULT ''");
445 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `master_salt` VARCHAR(255) NOT NULL DEFAULT ''");
446 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
447 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
448 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
450 // Update notes (these will be set as task text!)
451 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
454 case '0.3.7': // SQL queries for v0.3.7
455 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
458 case '0.3.8': // SQL queries for v0.3.8
459 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
460 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
462 // Update notes (these will be set as task text!)
463 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
466 case '0.3.9': // SQL queries for v0.3.9
467 // Update notes (these will be set as task text!)
468 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
471 case '0.4.0': // SQL queries for v0.4.0
472 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
474 // Update notes (these will be set as task text!)
475 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
478 case '0.4.1': // SQL queries for v0.4.1
479 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `show_timings` ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
481 // Update notes (these will be set as task text!)
482 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
485 case '0.4.2': // SQL queries for v0.4.2
486 // Update notes (these will be set as task text!)
487 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
490 case '0.4.3': // SQL queries for v0.4.3
491 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_host` VARCHAR(255) NOT NULL DEFAULT ''");
492 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_port` INT(5) UNSIGNED NOT NULL DEFAULT 0");
493 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_username` VARCHAR(255) NOT NULL DEFAULT ''");
494 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_password` VARCHAR(255) NOT NULL DEFAULT ''");
495 addAdminMenuSql('setup','config_proxy','Proxy-Einstellungen','Sollte Ihr Webserver sich hinter einem Proxy befinden, so können Sie Ihren {?mt_word?} so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15);
497 // Update notes (these will be set as task text!)
498 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
501 case '0.4.4': // SQL queries for v0.4.4
502 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
503 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
504 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
505 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
506 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
507 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
509 // Make this depending on ext-menu
510 addExtensionDependency('menu');
512 // Update notes (these will be set as task text!)
513 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
516 case '0.4.5': // SQL queries for v0.4.5
517 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `last_month` CHAR(2) NOT NULL DEFAULT '00'");
518 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `last_week` CHAR(2) NOT NULL DEFAULT '00'");
520 // Update notes (these will be set as task text!)
521 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
524 case '0.4.6': // SQL queries for v0.4.6
525 // Update notes (these will be set as task text!)
526 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
529 case '0.4.7': // SQL queries for v0.4.7
530 // Update notes (these will be set as task text!)
531 setExtensionUpdateNotes("Veraltetes Update.");
534 case '0.4.8': // SQL queries for v0.4.8
535 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)");
537 // Update notes (these will be set as task text!)
538 setExtensionUpdateNotes("Index für Betreff eingefügt.");
541 case '0.4.9': // SQL queries for v0.4.9
542 // Update notes (these will be set as task text!)
543 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
546 case '0.5.0': // SQL queries for v0.5.0
547 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`");
548 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`");
549 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` (`userid`,`level`)");
551 // Update notes (these will be set as task text!)
552 setExtensionUpdateNotes("Referal-System unterstützt nun detailierte Referal-Übersicht und vieles mehr.");
555 case '0.5.1': // SQL queries for v0.5.1
556 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`");
558 // Update notes (these will be set as task text!)
559 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
562 case '0.5.2': // SQL queries for v0.5.2
563 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000");
565 // Update notes (these will be set as task text!)
566 setExtensionUpdateNotes("Prozentsätze können nun fünf Stelle hinter dem Komma sein.");
569 case '0.5.3': // SQL queries for v0.5.3
570 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `session_save_path` VARCHAR(255) NOT NULL DEFAULT ''");
571 addAdminMenuSql('setup','config_session','Session-Einstellungen','Ändern Sie hier den Speicherpfad für Sessiondateien (Sitzungsdateien) ab, falls die Standart-Einstellung bei Ihrem Hoster zu Problem führen sollte.', 16);
573 // Update notes (these will be set as task text!)
574 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
577 case '0.5.4': // SQL queries for v0.5.4
578 addMemberMenuSql('main','reflist','Ref-Übersicht','N','Y',5);
580 // Depends on refback extension
581 addExtensionDependency('refback');
583 // Update notes (these will be set as task text!)
584 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
587 case '0.5.5': // SQL queries for v0.5.5
588 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `show_points_unconfirmed` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
590 // Update notes (these will be set as task text!)
591 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
594 case '0.5.6': // SQL queries for v0.5.6
595 // Update notes (these will be set as task text!)
596 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
599 case '0.5.7': // SQL queries for v0.5.7
600 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
602 // Update notes (these will be set as task text!)
603 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
606 case '0.5.8': // SQL queries for v0.5.8
607 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`");
609 // Update notes (these will be set as task text!)
610 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
613 case '0.5.9': // SQL queries for v0.5.9
614 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_filters`');
615 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_filters` (
616 `filter_id` BIGINT(20) UNSIGNED AUTO_INCREMENT,
617 `filter_name` VARCHAR(255) NOT NULL DEFAULT '',
618 `filter_function` VARCHAR(255) NOT NULL DEFAULT '',
619 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
620 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
621 UNIQUE `name_function` (`filter_name` , `filter_function`),
622 PRIMARY KEY (`filter_id`)
623 ) TYPE={?_TABLE_TYPE?} COMMENT='Filter system'");
624 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
626 // Update notes (these will be set as task text!)
627 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
630 case '0.6.0': // SQL queries for v0.6.0
631 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `update_filter_usage` ENUM('N','Y') NOT NULL DEFAULT 'N'");
633 // Update notes (these will be set as task text!)
634 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
637 case '0.6.1': // SQL queries for v0.6.1
638 // Update notes (these will be set as task text!)
639 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
642 case '0.6.2': // SQL queries for v0.6.2
643 // Depends on refback extension
644 addExtensionDependency('user');
646 // Update notes (these will be set as task text!)
647 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
650 case '0.6.3': // SQL queries for v0.6.3
651 // Update notes (these will be set as task text!)
652 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Einträge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
654 // Add special fix include to fix filters
655 addIncludeToPool('extension', 'inc/fix_filters.php');
658 case '0.6.4': // SQL queries for v0.6.4
660 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
661 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
662 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
663 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
665 // Update notes (these will be set as task text!)
666 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
669 case '0.6.5': // SQL queries for v0.6.5
670 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `css_php` `css_php` ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
672 // Update notes (these will be set as task text!)
673 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
676 case '0.6.6': // SQL queries for v0.6.6
677 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
678 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
679 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
681 // Update notes (these will be set as task text!)
682 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
685 case '0.6.7': // SQL queries for v0.6.7
686 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `index_delay` `index_delay` TINYINT(3) NOT NULL DEFAULT 0");
687 // Update notes (these will be set as task text!)
688 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
691 case '0.6.8': // SQL queries for v0.6.8
692 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu`
693 CHANGE `action` `action` VARCHAR(50) NOT NULL,
694 CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
695 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu`
696 CHANGE `action` `action` VARCHAR(50) NOT NULL,
697 CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
698 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu`
699 CHANGE `action` `action` VARCHAR(50) NOT NULL,
700 CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
702 // Update notes (these will be set as task text!)
703 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
706 case '0.6.9': // SQL queries for 0.6.9
708 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
710 // Update notes (these will be set as task text!)
711 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
714 case '0.7.0': // SQL queries for 0.7.0
716 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_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`),
723 ) ENGINE={?_TABLE_TYPE?}");
726 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `dns_cache_timeout` BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
729 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
731 // Update notes (these will be set as task text!)
732 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
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');
739 // Update notes (these will be set as task text!)
740 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
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'");
746 // Update notes (these will be set as task text!)
747 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
752 case 'modify': // When the extension got modified
755 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
758 case 'init': // Do stuff when extension is initialized
760 setConfigEntry('secret_key', '');
762 // Read key from secret file
763 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
764 // Maybe need setup of secret key!
765 loadIncludeOnce('inc/gen_sql_patches.php');
769 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
770 // File hash fas generated so we can also file the secret file... hopefully.
771 $hashFile = sprintf("%sinc/cache/.%s.cache", getPath(), getFileHash());
772 if (isFileReadable($hashFile)) {
774 setConfigEntry('secret_key', readFromFile($hashFile));
776 // Remove it from database
777 updateConfiguration('file_hash', '');
779 // Cannot read secret file!
780 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
784 // Transfer words/numbers to constants if config entry is found
785 if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
786 setConfigEntry('POINTS', getConfig('points_word'));
790 default: // Unknown extension mode
791 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));