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 * 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 *
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. *
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. *
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, *
38 ************************************************************************/
40 // Some security stuff...
41 if (!defined('__SECURITY')) {
46 setThisExtensionVersion('0.7.0');
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'));
51 // Keep this extension always active!
52 setExtensionAlwaysActive('Y');
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');
60 case 'remove': // Do stuff when removing extension
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`');
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'");
81 // Delete/update member menu entries
82 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE
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
96 unregisterFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', true, getExtensionDryRun());
99 case 'activate': // Do stuff when admin activates this extension
100 // SQL commands to run
104 case 'deactivate': // Do stuff when admin deactivates this extension
105 // SQL commands to run
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);
115 // Update notes (these will be set as task text!)
116 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.");
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)."");
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öschen von Bestätigungsmails angepasst werden (war auf dem Testsystem auf TINYINT(4) gesetzt.)");
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'");
129 // Update notes (these will be set as task text!)
130 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.");
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");
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ügt.");
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üpunkt (what-welcome ist Standart) als Einstiegspunkt in das Menüsystem genutzt werden soll.', 5);
144 // Update notes (these will be set as task text!)
145 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
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'");
151 // Update notes (these will be set as task text!)
152 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.");
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'");
158 // Update notes (these will be set as task text!)
159 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
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 ' <strong><big>·</big></strong> '");
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!)");
169 case '0.0.9': // SQL queries for v0.0.9
170 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);
172 // Update notes (these will be set as task text!)
173 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
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'");
179 // Update notes (these will be set as task text!)
180 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?");
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ü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");
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)."");
188 // Update notes (these will be set as task text!)
189 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.");
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");
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.)");
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'");
203 // Update notes (these will be set as task text!)
204 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
207 case '0.1.4': // SQL queries for v0.1.4
208 // Update notes (these will be set as task text!)
209 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
212 case '0.1.5': // SQL queries for v0.1.5
213 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP ext_has_admin");
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.");
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 ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
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ügt werden.");
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.");
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");
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.");
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");
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");
253 // Update notes (these will be set as task text!)
254 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
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'");
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.");
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.");
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'");
274 // Update notes (these will be set as task text!)
275 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
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
284 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `img_type` ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
286 // Update notes (these will be set as task text!)
287 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
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.");
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);
298 // Update notes (these will be set as task text!)
299 setExtensionUpdateNotes("Abzug von {?POINTS?} nun möglich.");
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");
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>
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ültiges Update.");
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'");
323 // Update notes (these will be set as task text!)
324 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
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ütungen...' WHERE `what`='payments' LIMIT 1");
331 // Update notes (these will be set as task text!)
332 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
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`)");
363 // Update notes (these will be set as task text!)
364 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE KEY) und normale Schlüssel (INDEX) gesetzt.");
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 '',
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`),
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'");
397 addAdminMenuSql('setup','config_admin','Adminmenü','Diverse Einstellungen am Adminmenü vornehmen.', 9);
399 // Update notes (these will be set as task text!)
400 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.");
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'");
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,
416 ) TYPE={?_TABLE_TYPE?}");
418 // Update notes (these will be set as task text!)
419 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.");
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&mode=noref)");
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");
437 // Update notes (these will be set as task text!)
438 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
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");
452 // Update notes (these will be set as task text!)
453 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
456 case '0.3.7': // SQL queries for v0.3.7
457 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
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");
464 // Update notes (these will be set as task text!)
465 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
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ür Admin-Menüs können länger sein. Diverse Fixes.");
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");
476 // Update notes (these will be set as task text!)
477 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
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'");
483 // Update notes (these will be set as task text!)
484 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
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ültiges Update.");
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önnen Sie Ihren {?mt_word?} so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15);
499 // Update notes (these will be set as task text!)
500 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
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`=''");
511 // Make this depending on ext-menu
512 addExtensionUpdateDependency('menu');
514 // Update notes (these will be set as task text!)
515 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
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'");
522 // Update notes (these will be set as task text!)
523 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
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ültiges Update.");
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.");
536 case '0.4.8': // SQL queries for v0.4.8
537 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)");
539 // Update notes (these will be set as task text!)
540 setExtensionUpdateNotes("Index für Betreff eingefügt.");
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ültiges Update.");
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`)");
553 // Update notes (these will be set as task text!)
554 setExtensionUpdateNotes("Referal-System unterstützt nun detailierte Referal-Übersicht und vieles mehr.");
557 case '0.5.1': // SQL queries for v0.5.1
558 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`");
560 // Update notes (these will be set as task text!)
561 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
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");
567 // Update notes (these will be set as task text!)
568 setExtensionUpdateNotes("Prozentsätze können nun fünf Stelle hinter dem Komma sein.");
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','Ändern Sie hier den Speicherpfad für Sessiondateien (Sitzungsdateien) ab, falls die Standart-Einstellung bei Ihrem Hoster zu Problem führen sollte.', 16);
575 // Update notes (these will be set as task text!)
576 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
579 case '0.5.4': // SQL queries for v0.5.4
580 addMemberMenuSql('main','reflist','Ref-Übersicht','N','Y',5);
582 // Depends on refback extension
583 addExtensionUpdateDependency('refback');
585 // Update notes (these will be set as task text!)
586 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
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'");
592 // Update notes (these will be set as task text!)
593 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
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ültiges Update.");
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");
604 // Update notes (these will be set as task text!)
605 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
608 case '0.5.8': // SQL queries for v0.5.8
609 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`");
611 // Update notes (these will be set as task text!)
612 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
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ässt diese de- bzw. wieder aktivieren.', 17);
628 // Update notes (these will be set as task text!)
629 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
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'");
635 // Update notes (these will be set as task text!)
636 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
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ültiges Update.");
644 case '0.6.2': // SQL queries for v0.6.2
645 // Depends on refback extension
646 addExtensionUpdateDependency('user');
648 // Update notes (these will be set as task text!)
649 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
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äge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
656 // Add special fix include to fix filters
657 addIncludeToPool('extension', 'inc/fix_filters.php');
660 case '0.6.4': // SQL queries for v0.6.4
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!%'");
667 // Update notes (these will be set as task text!)
668 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
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'");
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.");
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);
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.");
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.");
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');
704 // Update notes (these will be set as task text!)
705 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
708 case '0.6.9': // SQL queries for 0.6.9
710 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, getExtensionDryRun());
712 // Update notes (these will be set as task text!)
713 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
716 case '0.7.0': // SQL queries for 0.7.0
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`),
725 ) ENGINE={?_TABLE_TYPE?}");
728 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `dns_cache_timeout` BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
731 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, getExtensionDryRun());
733 // Update notes (these will be set as task text!)
734 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
739 case 'modify': // When the extension got modified
742 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
745 case 'init': // Do stuff when extension is initialized
747 setConfigEntry('secret_key', '');
749 // Read key from secret file
750 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getConfig('file_hash') == '') || (getConfig('master_salt') == '') || (getConfig('pass_scramble') == ''))) {
752 // Maybe need setup of secret key!
753 loadIncludeOnce('inc/gen_sql_patches.php');
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();
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)) {
770 setConfigEntry('secret_key', readFromFile($hashFile));
772 // Remove it from database
773 updateConfiguration('file_hash', '');
775 // Cannot read secret file!
776 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
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'));
786 default: // Unknown extension mode
787 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));