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.9');
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', '0.7.8', '0.7.9'));
49 // Keep this extension always active!
50 setExtensionAlwaysActive('Y');
52 switch (getExtensionMode()) {
53 case 'register': // Do stuff when installation is running
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 '{OPEN_TEMPLATE}DEFAULT_POINTS{CLOSE_TEMPLATE}'");
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.1.0
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'");
383 // All "logical areas" together
384 addDropTableSql('admin_menu_las_data');
385 addCreateTableSql('admin_menu_las_data', "(
386 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
387 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
388 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
389 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
390 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
391 UNIQUE KEY (`la_id`),
395 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'LAS position and title data'");
397 // Which menu do you like?
398 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
401 addAdminMenuSql('setup', 'config_admin', 'Adminmenü', 'Diverse Einstellungen am Adminmenü vornehmen.', 9);
403 // Update notes (these will be set as task text!)
404 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.");
407 case '0.3.3': // SQL queries for v0.3.3
408 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
409 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
411 // The statistics table
412 addDropTableSql('admin_las_stats');
413 addCreateTableSql('admin_las_stats', "(
414 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
415 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
416 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
417 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
420 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'LAS click data'");
422 // Update notes (these will be set as task text!)
423 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.");
426 case '0.3.4': // SQL queries for v0.3.4
427 // Update notes (these will be set as task text!)
428 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
431 case '0.3.5': // SQL queries for v0.3.5
432 // List accounts with no referal
433 addMemberMenuSql('stats', NULL, 'Statistiken', 'Y', 'N', 4);
434 addMemberMenuSql('stats', 'stats2', 'Framekiller-Mails', 'Y', 'N', 2);
435 addMemberMenuSql('extras', NULL, 'Extras', 'Y', 'N', 5);
436 addMemberMenuSql('rals', NULL, 'Rallyes', 'Y', 'N', 6);
437 addMemberMenuSql('account', NULL, 'Ihr Account', 'Y', 'N', 7);
438 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`=1, `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
439 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=3 WHERE `what`='reflinks' LIMIT 1");
441 // Update notes (these will be set as task text!)
442 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
445 case '0.3.6': // SQL queries for v0.3.6
446 addConfigAddSql('salt_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
447 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
448 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` MODIFY `password` VARCHAR(255) NOT NULL DEFAULT ''");
449 addConfigAddSql('rand_no', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
450 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
451 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
452 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
453 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
454 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
456 // Update notes (these will be set as task text!)
457 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
460 case '0.3.7': // SQL queries for v0.3.7
461 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
464 case '0.3.8': // SQL queries for v0.3.8
465 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
466 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
468 // Update notes (these will be set as task text!)
469 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
472 case '0.3.9': // SQL queries for v0.3.9
473 // Update notes (these will be set as task text!)
474 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
477 case '0.4.0': // SQL queries for v0.4.0
478 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
480 // Update notes (these will be set as task text!)
481 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
484 case '0.4.1': // SQL queries for v0.4.1
485 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
487 // Update notes (these will be set as task text!)
488 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
491 case '0.4.2': // SQL queries for v0.4.2
492 // Update notes (these will be set as task text!)
493 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
496 case '0.4.3': // SQL queries for v0.4.3
497 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
498 addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
499 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
500 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
501 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);
503 // Update notes (these will be set as task text!)
504 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
507 case '0.4.4': // SQL queries for v0.4.4
508 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
509 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
510 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
511 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
512 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
513 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
515 // Make this depending on ext-menu
516 addExtensionDependency('menu');
518 // Update notes (these will be set as task text!)
519 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
522 case '0.4.5': // SQL queries for v0.4.5
523 addConfigAddSql('last_month', 'CHAR(2) NOT NULL DEFAULT 00');
524 addConfigAddSql('last_week', 'CHAR(2) NOT NULL DEFAULT 00');
526 // Update notes (these will be set as task text!)
527 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
530 case '0.4.6': // SQL queries for v0.4.6
531 // Update notes (these will be set as task text!)
532 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
535 case '0.4.7': // SQL queries for v0.4.7
536 // Update notes (these will be set as task text!)
537 setExtensionUpdateNotes("Veraltetes Update.");
540 case '0.4.8': // SQL queries for v0.4.8
541 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)');
543 // Update notes (these will be set as task text!)
544 setExtensionUpdateNotes("Index für Betreff eingefügt.");
547 case '0.4.9': // SQL queries for v0.4.9
548 // Update notes (these will be set as task text!)
549 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
552 case '0.5.0': // SQL queries for v0.5.0
553 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`');
554 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`');
555 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` (`userid`,`level`)');
557 // Update notes (these will be set as task text!)
558 setExtensionUpdateNotes("Referal-System unterstützt nun detailierte Referal-Übersicht und vieles mehr.");
561 case '0.5.1': // SQL queries for v0.5.1
562 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`');
564 // Update notes (these will be set as task text!)
565 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
568 case '0.5.2': // SQL queries for v0.5.2
569 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
571 // Update notes (these will be set as task text!)
572 setExtensionUpdateNotes("Prozentsätze können nun fünf Stellen hinter dem Komma sein.");
575 case '0.5.3': // SQL queries for v0.5.3
576 addConfigAddSql('session_save_path', "VARCHAR(255) NOT NULL DEFAULT ''");
577 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);
579 // Update notes (these will be set as task text!)
580 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
583 case '0.5.4': // SQL queries for v0.5.4
584 addMemberMenuSql('main', 'reflist', 'Ref-Übersicht', 'N', 'Y', 5);
586 // Depends on refback extension
587 addExtensionDependency('refback');
589 // Update notes (these will be set as task text!)
590 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
593 case '0.5.5': // SQL queries for v0.5.5
594 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
596 // Update notes (these will be set as task text!)
597 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
600 case '0.5.6': // SQL queries for v0.5.6
601 // Update notes (these will be set as task text!)
602 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
605 case '0.5.7': // SQL queries for v0.5.7
606 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
608 // Update notes (these will be set as task text!)
609 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
612 case '0.5.8': // SQL queries for v0.5.8
613 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`');
615 // Update notes (these will be set as task text!)
616 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
619 case '0.5.9': // SQL queries for v0.5.9
620 addDropTableSql('filters');
621 addCreateTableSql('filters', "(
622 `filter_id` BIGINT(20) UNSIGNED AUTO_INCREMENT,
623 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
624 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
625 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
626 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
627 UNIQUE `name_function` (`filter_name` , `filter_function`),
628 PRIMARY KEY (`filter_id`)
629 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Filter system'");
630 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
632 // Update notes (these will be set as task text!)
633 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
636 case '0.6.0': // SQL queries for v0.6.0
637 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
639 // Update notes (these will be set as task text!)
640 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
643 case '0.6.1': // SQL queries for v0.6.1
644 // Update notes (these will be set as task text!)
645 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
648 case '0.6.2': // SQL queries for v0.6.2
649 // Depends on refback extension
650 addExtensionDependency('user');
652 // Update notes (these will be set as task text!)
653 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
656 case '0.6.3': // SQL queries for v0.6.3
657 // Update notes (these will be set as task text!)
658 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Einträge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
660 // Add special fix include to fix filters
661 addIncludeToPool('extension', 'inc/fix_filters.php');
664 case '0.6.4': // SQL queries for v0.6.4
666 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
667 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
668 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
669 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
671 // Update notes (these will be set as task text!)
672 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
675 case '0.6.5': // SQL queries for v0.6.5
676 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
678 // Update notes (these will be set as task text!)
679 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
682 case '0.6.6': // SQL queries for v0.6.6
683 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
684 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
685 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
687 // Update notes (these will be set as task text!)
688 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
691 case '0.6.7': // SQL queries for v0.6.7
692 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
694 // Update notes (these will be set as task text!)
695 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
698 case '0.6.8': // SQL queries for v0.6.8
699 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_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?}_guest_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
702 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
703 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
704 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
706 // Update notes (these will be set as task text!)
707 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
710 case '0.6.9': // SQL queries for 0.6.9
712 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
714 // Update notes (these will be set as task text!)
715 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
718 case '0.7.0': // SQL queries for 0.7.0
720 addDropTableSql('dns_cache');
721 addCreateTableSql('dns_cache', "(
722 `hostname` VARCHAR(255) NOT NULL,
723 `ip` VARCHAR(15) NOT NULL,
724 `added` DATETIME NOT NULL,
725 PRIMARY KEY (`hostname`),
727 ) ENGINE = {?_TABLE_TYPE?}");
730 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
733 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
735 // Update notes (these will be set as task text!)
736 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
739 case '0.7.1': // SQL queries for v0.7.1
740 // This update just depends on ext-timezone to make integration of an essential extension much easier
741 addExtensionDependency('timezone');
743 // Update notes (these will be set as task text!)
744 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
747 case '0.7.2': // SQL queries for v0.7.2
748 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
750 // Update notes (these will be set as task text!)
751 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
754 case '0.7.3': // SQL queries for v0.7.3
755 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_name` `filter_name` VARCHAR(50) NOT NULL DEFAULT ''");
756 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_function` `filter_function` VARCHAR(100) NOT NULL DEFAULT ''");
758 // Update notes (these will be set as task text!)
759 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
762 case '0.7.4': // SQL queries for v0.7.4
763 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
765 // Update notes (these will be set as task text!)
766 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
769 case '0.7.5': // SQL queries for v0.7.5
770 addConfigAddSql('last_hour', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
772 // Update notes (these will be set as task text!)
773 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
776 case '0.7.6': // SQL queries for v0.7.6
777 addConfigChangeSql('last_month', 'last_month', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
778 addConfigChangeSql('last_week', 'last_week', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
780 // Update notes (these will be set as task text!)
781 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
784 case '0.7.7': // SQL queries for v0.7.7
785 addMemberMenuSql('earn', NULL, 'Verdienen', 'Y', 'N', 2);
786 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn', `sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
788 // Update notes (these will be set as task text!)
789 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
792 case '0.7.8': // SQL queries for v0.7.8
793 addConfigChangeSql('reg_points_mode', 'reg_points_mode', "ENUM('REF','DIRECT') NOT NULL DEFAULT 'REFERAL'");
795 // Update notes (these will be set as task text!)
796 setExtensionUpdateNotes("Konfigurationseinträge mit Spaltentyp <strong>ENUM</strong> werden nun immer komplett gross geschrieben.");
799 case '0.7.9': // SQL queries for v0.7.9
800 addExtensionSQL("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_email_max_rec' WHERE `what`='config_email' LIMIT 1");
802 // Update notes (these will be set as task text!)
803 setExtensionUpdateNotes("Adminscript <strong>what-config_email.php</strong> nach <strong>what-list_email_max_rec.php</strong> umbenannt.");
808 case 'modify': // When the extension got modified
811 case 'test': // For testing purposes
814 case 'init': // Do stuff when extension is initialized
816 setConfigEntry('secret_key', '');
818 // Read key from secret file
819 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
820 // Maybe need setup of secret key!
821 loadIncludeOnce('inc/gen_sql_patches.php');
825 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
826 // File hash fas generated so we can also file the secret file... hopefully.
827 $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
828 if (isFileReadable($hashFile)) {
830 setConfigEntry('secret_key', readFromFile($hashFile));
832 // Remove it from database
833 updateConfiguration('file_hash', '');
835 // Cannot read secret file!
836 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
840 // Transfer words/numbers to constants if config entry is found
841 if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
842 setConfigEntry('POINTS', getPointsWord());
846 default: // Unknown extension mode
847 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));