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 - 2011 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.7');
46 // Version history array (add more with , '0.1.0' and so on)
47 setExtensionVersionHistory(array('0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3', '0.6.4', '0.6.4', '0.6.5', '0.6.6', '0.6.7', '0.6.8', '0.6.9', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7'));
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 addDropTableSql('admin_menu_las');
61 addDropTableSql('admin_menu_las_data');
62 addDropTableSql('admin_las_stats');
63 addDropTableSql('filters');
64 addDropTableSql('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)) OR
88 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='main' WHERE
95 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', true, isExtensionDryRun());
98 case 'activate': // Do stuff when admin activates this extension
99 // SQL commands to run
103 case 'deactivate': // Do stuff when admin deactivates this extension
104 // SQL commands to run
108 case 'update': // Update an extension
109 switch (getCurrentExtensionVersion()) {
110 case '0.0.1': // SQL queries for v0.0.1
111 addConfigAddSql('ext_autopurge', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
112 addAdminMenuSql('setup','config_extensions','Erweitungsmanagement','Alle Einstellungen am Erweiterungsmanagement.', 10);
114 // Update notes (these will be set as task text!)
115 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.");
118 case '0.0.2': // SQL queries for v0.0.2
119 addConfigChangeSql('auto_purge', 'auto_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay()*14));
121 // Update notes (these will be set as task text!)
122 setExtensionUpdateNotes("In der Tabelle <strong>{?_MYSQL_PREFIX?}_config</strong> musste die Spalte <strong>auto_purge</strong> (autom. Löschen von Bestätigungsmails angepasst werden (war auf dem Testsystem auf TINYINT(4) gesetzt.)");
125 case '0.0.3': // SQL queries for v0.0.3
126 addConfigAddSql('points_word', "VARCHAR(255) NOT NULL DEFAULT 'Punkte'");
128 // Update notes (these will be set as task text!)
129 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.");
132 case '0.0.4': // SQL queries for v0.0.4
133 addConfigAddSql('mails_page', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
135 // Update notes (these will be set as task text!)
136 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugefügt.");
139 case '0.0.5': // SQL queries for v0.0.5
140 addConfigAddSql('index_home', "VARCHAR(255) NOT NULL DEFAULT 'welcome'");
141 addAdminMenuSql('setup','config_home','Home-Seite festlegen','Stellen Sie hier ein, welcher Menüpunkt (what-welcome ist Standard) als Einstiegspunkt in das Menüsystem genutzt werden soll.', 5);
143 // Update notes (these will be set as task text!)
144 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
147 case '0.0.6': // SQL queries for v0.0.6
148 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'N'");
150 // Update notes (these will be set as task text!)
151 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.");
154 case '0.0.7': // SQL queries for v0.0.7
155 addConfigAddSql('verbose_sql', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
157 // Update notes (these will be set as task text!)
158 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
161 case '0.0.8': // SQL queries for v0.0.8
162 addConfigAddSql('menu_blur_spacer', "VARCHAR(255) NOT NULL DEFAULT ' <strong><big>·</big></strong> '");
164 // Update notes (these will be set as task text!)
165 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
168 case '0.0.9': // SQL queries for v0.0.9
169 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);
171 // Update notes (these will be set as task text!)
172 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
175 case '0.1.0': // SQL queries for v0.2.1
176 addConfigAddSql('reg_points_mode', "ENUM('ref','direct') NOT NULL DEFAULT 'ref'");
178 // Update notes (these will be set as task text!)
179 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?");
182 case '0.1.1': // SQL queries for v0.1.1
183 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Home-/Eingangsseite', descr='Stellen Sie hier ein, welcher Menüpunkt (what-welcome ist Standard) 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");
184 addConfigAddSql('index_delay', "TINYINT(3) NOT NULL DEFAULT 0");
185 addConfigAddSql('index_cookie', "BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getOneDay()*365)."");
187 // Update notes (these will be set as task text!)
188 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.");
191 case '0.1.2': // SQL queries for v0.1.2
192 addAdminMenuSql('setup','config_refid','Standard-Ref-Id','Stellen Sie hier die Mitglieder-Id ein, die genommen werden soll, wenn der Gast n icht per Referal-Link Ihren {?mt_word?} aufgerufen hat.', 7);
193 addConfigAddSql('def_refid', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
195 // Update notes (these will be set as task text!)
196 setExtensionUpdateNotes("Standard Referal-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
199 case '0.1.3': // SQL queries for v0.1.3
200 addConfigAddSql('refid_target', "ENUM('register','index') NOT NULL DEFAULT 'register'");
202 // Update notes (these will be set as task text!)
203 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
206 case '0.1.4': // SQL queries for v0.1.4
207 // Update notes (these will be set as task text!)
208 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
211 case '0.1.5': // SQL queries for v0.1.5
212 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP ext_has_admin");
214 // Update notes (these will be set as task text!)
215 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
218 case '0.1.6': // SQL queries for v0.1.6
219 addConfigAddSql('enable_title_deco', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
220 addConfigAddSql('title_left', "VARCHAR(10) NOT NULL DEFAULT '[--'");
221 addConfigAddSql('title_middle', "VARCHAR(10) NOT NULL DEFAULT '-'");
222 addConfigAddSql('title_right', "VARCHAR(10) NOT NULL DEFAULT '--]'");
223 addConfigAddSql('enable_mod_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
224 addConfigAddSql('enable_what_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
225 addAdminMenuSql('setup','config_title','Seitentitel ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
227 // Update notes (these will be set as task text!)
228 setExtensionUpdateNotes("Dekorationen des Seitentiteles lassen sich ein- und ausschalten und selber definieren; Modul-Titel und Titel der <strong>what</strong>-Dateien kann hinzugefügt werden.");
231 case '0.1.7': // SQL queries for v0.1.7
232 // Update notes (these will be set as task text!)
233 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
236 case '0.1.8': // SQL queries for v0.1.8
237 // Update notes (these will be set as task text!)
238 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
241 case '0.1.9': // SQL queries for v0.1.9
242 // Update notes (these will be set as task text!)
243 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
246 case '0.2.0': // SQL queries for v0.2.0
247 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_jackpot` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
249 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `payment` `payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
250 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `price` `price` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
252 // Update notes (these will be set as task text!)
253 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
256 case '0.2.1': // SQL queries for v0.2.1
257 addConfigAddSql('css_php', "ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
259 // Update notes (these will be set as task text!)
260 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
263 case '0.2.2': // SQL queries for v0.2.2
264 // Update notes (these will be set as task text!)
265 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
268 case '0.2.3': // SQL queries for v0.2.3
269 addConfigAddSql('guest_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
270 addConfigAddSql('member_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
271 addConfigAddSql('youre_here', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
273 // Update notes (these will be set as task text!)
274 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
277 case '0.2.4': // SQL queries for v0.2.4
278 // PNG image is the default
281 // Is the JPEG file found and required PHP function there?
282 if ((isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
283 // Switch to JPEG format
286 addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
288 // Update notes (these will be set as task text!)
289 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
292 case '0.2.5': // SQL queries for v0.2.5
293 // Update notes (these will be set as task text!)
294 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
297 case '0.2.6': // SQL queries for v0.2.6
298 addAdminMenuSql('user','sub_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen','Allen oder einem Mitglied {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen.', 8);
300 // Update notes (these will be set as task text!)
301 setExtensionUpdateNotes("Abzug von {?POINTS?} nun möglich.");
304 case '0.2.7': // SQL queries for v0.2.7
305 addConfigAddSql('stats_limit', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
306 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
308 // Update notes (these will be set as task text!)
309 setExtensionUpdateNotes("<ol>
310 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
311 <li>Mitgliederstatistik mit Seitennavigation.</li>
315 case '0.2.8': // SQL queries for v0.2.8
316 // Update notes (these will be set as task text!)
317 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
320 case '0.2.9': // SQL queries for v0.2.9
321 addConfigAddSql('mt_word', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
322 addConfigAddSql('mt_word2', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
323 addConfigAddSql('mt_word3', "VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
325 // Update notes (these will be set as task text!)
326 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
329 case '0.3.0': // SQL queries for v0.3.0
330 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
331 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailvergütungen...' WHERE `what`='payments' LIMIT 1");
333 // Update notes (these will be set as task text!)
334 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
337 case '0.3.1': // SQL queries for v0.3.1
338 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD UNIQUE KEY `ext_name` (`ext_name`)");
339 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD UNIQUE KEY `login` (`login`)");
340 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` ADD INDEX `visible` (`visible`)");
341 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` ADD UNIQUE KEY `level` (`level`)");
342 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD INDEX `level` (`level`)");
343 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD INDEX `data_type` (`data_type`)");
344 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD UNIQUE KEY `module` (`module`)");
345 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `action` (`action`)");
346 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `what` (`what`)");
347 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_type` (`task_type`)");
348 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `status` (`status`)");
349 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_created` (`task_created`)");
350 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD FULLTEXT `subject` (`subject`)");
351 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `subject` (`subject`)");
352 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD INDEX `ext_active` (`ext_active`)");
353 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `action` (`action`)");
354 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `what` (`what`)");
355 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `sort` (`sort`)");
356 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `visible` (`visible`)");
357 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `locked` (`locked`)");
358 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `what` (`what`)");
359 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `sort` (`sort`)");
360 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `visible` (`visible`)");
361 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `locked` (`locked`)");
362 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `visible` (`visible`)");
363 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `sort` (`sort`)");
365 // Update notes (these will be set as task text!)
366 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE KEY) und normale Schlüssel (INDEX) gesetzt.");
369 case '0.3.2': // SQL queries for v0.3.2
370 // Connection table between the menu system and the "logical area system"
371 addDropTableSql('admin_menu_las');
372 addCreateTableSql('admin_menu_las', "(
373 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
374 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
375 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
376 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
381 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Menu system -> LAS'");
382 // All "logical areas" together
383 addDropTableSql('admin_menu_las_data');
384 addCreateTableSql('admin_menu_las_data', "(
385 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
386 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
387 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
388 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
389 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
390 UNIQUE KEY (`la_id`),
394 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'LAS position and title data'");
395 // Which menu do you like?
396 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
399 addAdminMenuSql('setup','config_admin','Adminmenü','Diverse Einstellungen am Adminmenü vornehmen.', 9);
401 // Update notes (these will be set as task text!)
402 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.");
405 case '0.3.3': // SQL queries for v0.3.3
406 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
407 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
409 // The statistics table
410 addDropTableSql('admin_las_stats');
411 addCreateTableSql('admin_las_stats', "(
412 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
413 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
414 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
415 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
418 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'LAS click data'");
420 // Update notes (these will be set as task text!)
421 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.");
424 case '0.3.4': // SQL queries for v0.3.4
425 // Update notes (these will be set as task text!)
426 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
429 case '0.3.5': // SQL queries for v0.3.5
430 // List accounts with no referal
431 addMemberMenuSql('stats',NULL,'Statistiken','Y','N',4);
432 addMemberMenuSql('stats','stats2','Framekiller-Mails','Y','N',2);
433 addMemberMenuSql('extras',NULL,'Extras','Y','N',5);
434 addMemberMenuSql('rals',NULL,'Rallyes','Y','N',6);
435 addMemberMenuSql('account',NULL,'Ihr Account','Y','N',7);
436 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`=1, `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
437 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=3 WHERE `what`='reflinks' LIMIT 1");
439 // Update notes (these will be set as task text!)
440 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
443 case '0.3.6': // SQL queries for v0.3.6
444 addConfigAddSql('salt_length', "TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
445 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
446 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` MODIFY `password` VARCHAR(255) NOT NULL DEFAULT ''");
447 addConfigAddSql('rand_no', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
448 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
449 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
450 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
451 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
452 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
454 // Update notes (these will be set as task text!)
455 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
458 case '0.3.7': // SQL queries for v0.3.7
459 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
462 case '0.3.8': // SQL queries for v0.3.8
463 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
464 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
466 // Update notes (these will be set as task text!)
467 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
470 case '0.3.9': // SQL queries for v0.3.9
471 // Update notes (these will be set as task text!)
472 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
475 case '0.4.0': // SQL queries for v0.4.0
476 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
478 // Update notes (these will be set as task text!)
479 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
482 case '0.4.1': // SQL queries for v0.4.1
483 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
485 // Update notes (these will be set as task text!)
486 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
489 case '0.4.2': // SQL queries for v0.4.2
490 // Update notes (these will be set as task text!)
491 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
494 case '0.4.3': // SQL queries for v0.4.3
495 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
496 addConfigAddSql('proxy_port', "INT(5) UNSIGNED NOT NULL DEFAULT 0");
497 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
498 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
499 addAdminMenuSql('setup','config_proxy','Proxy-Einstellungen','Sollte Ihr Webserver sich hinter einem Proxy befinden, so können Sie Ihren {?mt_word?} so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15);
501 // Update notes (these will be set as task text!)
502 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
505 case '0.4.4': // SQL queries for v0.4.4
506 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
507 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
508 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
509 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
510 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
511 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
513 // Make this depending on ext-menu
514 addExtensionDependency('menu');
516 // Update notes (these will be set as task text!)
517 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
520 case '0.4.5': // SQL queries for v0.4.5
521 addConfigAddSql('last_month', "CHAR(2) NOT NULL DEFAULT '00'");
522 addConfigAddSql('last_week', "CHAR(2) NOT NULL DEFAULT '00'");
524 // Update notes (these will be set as task text!)
525 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
528 case '0.4.6': // SQL queries for v0.4.6
529 // Update notes (these will be set as task text!)
530 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
533 case '0.4.7': // SQL queries for v0.4.7
534 // Update notes (these will be set as task text!)
535 setExtensionUpdateNotes("Veraltetes Update.");
538 case '0.4.8': // SQL queries for v0.4.8
539 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)");
541 // Update notes (these will be set as task text!)
542 setExtensionUpdateNotes("Index für Betreff eingefügt.");
545 case '0.4.9': // SQL queries for v0.4.9
546 // Update notes (these will be set as task text!)
547 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
550 case '0.5.0': // SQL queries for v0.5.0
551 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`");
552 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`");
553 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` (`userid`,`level`)");
555 // Update notes (these will be set as task text!)
556 setExtensionUpdateNotes("Referal-System unterstützt nun detailierte Referal-Übersicht und vieles mehr.");
559 case '0.5.1': // SQL queries for v0.5.1
560 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`");
562 // Update notes (these will be set as task text!)
563 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
566 case '0.5.2': // SQL queries for v0.5.2
567 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000");
569 // Update notes (these will be set as task text!)
570 setExtensionUpdateNotes("Prozentsätze können nun fünf Stellen hinter dem Komma sein.");
573 case '0.5.3': // SQL queries for v0.5.3
574 addConfigAddSql('session_save_path', "VARCHAR(255) NOT NULL DEFAULT ''");
575 addAdminMenuSql('setup','config_session','Session-Einstellungen','Ändern Sie hier den Speicherpfad für Sessiondateien (Sitzungsdateien) ab, falls die Standard-Einstellung bei Ihrem Hoster zu Problem führen sollte.', 16);
577 // Update notes (these will be set as task text!)
578 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
581 case '0.5.4': // SQL queries for v0.5.4
582 addMemberMenuSql('main','reflist','Ref-Übersicht','N','Y',5);
584 // Depends on refback extension
585 addExtensionDependency('refback');
587 // Update notes (these will be set as task text!)
588 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
591 case '0.5.5': // SQL queries for v0.5.5
592 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
594 // Update notes (these will be set as task text!)
595 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
598 case '0.5.6': // SQL queries for v0.5.6
599 // Update notes (these will be set as task text!)
600 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
603 case '0.5.7': // SQL queries for v0.5.7
604 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
606 // Update notes (these will be set as task text!)
607 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
610 case '0.5.8': // SQL queries for v0.5.8
611 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`");
613 // Update notes (these will be set as task text!)
614 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
617 case '0.5.9': // SQL queries for v0.5.9
618 addDropTableSql('filters');
619 addCreateTableSql('filters', "(
620 `filter_id` BIGINT(20) UNSIGNED AUTO_INCREMENT,
621 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
622 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
623 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
624 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
625 UNIQUE `name_function` (`filter_name` , `filter_function`),
626 PRIMARY KEY (`filter_id`)
627 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Filter system'");
628 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
630 // Update notes (these will be set as task text!)
631 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
634 case '0.6.0': // SQL queries for v0.6.0
635 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
637 // Update notes (these will be set as task text!)
638 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
641 case '0.6.1': // SQL queries for v0.6.1
642 // Update notes (these will be set as task text!)
643 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
646 case '0.6.2': // SQL queries for v0.6.2
647 // Depends on refback extension
648 addExtensionDependency('user');
650 // Update notes (these will be set as task text!)
651 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
654 case '0.6.3': // SQL queries for v0.6.3
655 // Update notes (these will be set as task text!)
656 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Einträge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
658 // Add special fix include to fix filters
659 addIncludeToPool('extension', 'inc/fix_filters.php');
662 case '0.6.4': // SQL queries for v0.6.4
664 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
665 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
666 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
667 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
669 // Update notes (these will be set as task text!)
670 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
673 case '0.6.5': // SQL queries for v0.6.5
674 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
676 // Update notes (these will be set as task text!)
677 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
680 case '0.6.6': // SQL queries for v0.6.6
681 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
682 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
683 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
685 // Update notes (these will be set as task text!)
686 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
689 case '0.6.7': // SQL queries for v0.6.7
690 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
692 // Update notes (these will be set as task text!)
693 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
696 case '0.6.8': // SQL queries for v0.6.8
697 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
698 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
699 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
700 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
701 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
702 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` 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, isExtensionDryRun());
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 addDropTableSql('dns_cache');
719 addCreateTableSql('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 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
731 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
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.");
737 case '0.7.1': // SQL queries for v0.7.1
738 // This update just depends on ext-timezone to make integration of an essential extension much easier
739 addExtensionDependency('timezone');
741 // Update notes (these will be set as task text!)
742 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
745 case '0.7.2': // SQL queries for v0.7.2
746 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
748 // Update notes (these will be set as task text!)
749 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
752 case '0.7.3': // SQL queries for v0.7.3
753 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_name` `filter_name` VARCHAR(50) NOT NULL DEFAULT ''");
754 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_function` `filter_function` VARCHAR(100) NOT NULL DEFAULT ''");
756 // Update notes (these will be set as task text!)
757 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
760 case '0.7.4': // SQL queries for v0.7.4
761 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
763 // Update notes (these will be set as task text!)
764 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
767 case '0.7.5': // SQL queries for v0.7.5
768 addConfigAddSql('last_hour', "TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00");
770 // Update notes (these will be set as task text!)
771 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
774 case '0.7.6': // SQL queries for v0.7.6
775 addConfigChangeSql('last_month', 'last_month', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
776 addConfigChangeSql('last_week', 'last_week', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
778 // Update notes (these will be set as task text!)
779 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
782 case '0.7.7': // SQL queries for v0.7.7
783 addMemberMenuSql('earn',NULL,'Verdienen','Y','N',2);
784 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn', `sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
786 // Update notes (these will be set as task text!)
787 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
792 case 'modify': // When the extension got modified
795 case 'test': // For testing purposes
798 case 'init': // Do stuff when extension is initialized
800 setConfigEntry('secret_key', '');
802 // Read key from secret file
803 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
804 // Maybe need setup of secret key!
805 loadIncludeOnce('inc/gen_sql_patches.php');
809 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
810 // File hash fas generated so we can also file the secret file... hopefully.
811 $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
812 if (isFileReadable($hashFile)) {
814 setConfigEntry('secret_key', readFromFile($hashFile));
816 // Remove it from database
817 updateConfiguration('file_hash', '');
819 // Cannot read secret file!
820 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
824 // Transfer words/numbers to constants if config entry is found
825 if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
826 setConfigEntry('POINTS', getPointsWord());
830 default: // Unknown extension mode
831 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));