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.8.1');
46 // Version history array (add more with , '0.0.1' and so on)
47 setExtensionVersionHistory(array('0.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', '0.8.0', '0.8.1'));
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('dns_cache');
65 // Delete admin menu entries
66 addExtensionSql("DELETE LOW_PRIORITY FROM
67 `{?_MYSQL_PREFIX?}_admin_menu`
84 // Delete/update member menu entries
85 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE
88 (`action`='stats' AND (`what`='' OR `what` IS NULL)) OR
89 (`action`='extras' AND (`what`='' OR `what` IS NULL)) OR
90 (`action`='rals' AND (`what`='' OR `what` IS NULL)) OR
91 (`action`='account' AND (`what`='' OR `what` IS NULL)) OR
93 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='main' WHERE
100 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', true, isExtensionDryRun());
103 case 'activate': // Do stuff when admin activates this extension
104 // SQL commands to run
108 case 'deactivate': // Do stuff when admin deactivates this extension
109 // SQL commands to run
113 case 'update': // Update an extension
114 switch (getCurrentExtensionVersion()) {
115 case '0.0.1': // SQL queries for v0.0.1
116 addConfigAddSql('ext_autopurge', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
117 addAdminMenuSql('setup','config_extensions','Erweitungsmanagement','Alle Einstellungen am Erweiterungsmanagement.', 10);
119 // Update notes (these will be set as task text!)
120 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.");
123 case '0.0.2': // SQL queries for v0.0.2
124 addConfigChangeSql('auto_purge', 'auto_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay()*14));
126 // Update notes (these will be set as task text!)
127 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.)");
130 case '0.0.3': // SQL queries for v0.0.3
131 addConfigAddSql('points_word', "VARCHAR(255) NOT NULL DEFAULT '{OPEN_TEMPLATE}DEFAULT_POINTS{CLOSE_TEMPLATE}'");
133 // Update notes (these will be set as task text!)
134 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.");
137 case '0.0.4': // SQL queries for v0.0.4
138 addConfigAddSql('mails_page', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
140 // Update notes (these will be set as task text!)
141 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugefügt.");
144 case '0.0.5': // SQL queries for v0.0.5
145 addConfigAddSql('index_home', "VARCHAR(255) NOT NULL DEFAULT 'welcome'");
146 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);
148 // Update notes (these will be set as task text!)
149 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
152 case '0.0.6': // SQL queries for v0.0.6
153 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'N'");
155 // Update notes (these will be set as task text!)
156 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.");
159 case '0.0.7': // SQL queries for v0.0.7
160 addConfigAddSql('verbose_sql', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
162 // Update notes (these will be set as task text!)
163 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
166 case '0.0.8': // SQL queries for v0.0.8
167 addConfigAddSql('menu_blur_spacer', "VARCHAR(255) NOT NULL DEFAULT ' <strong><big>·</big></strong> '");
169 // Update notes (these will be set as task text!)
170 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
173 case '0.0.9': // SQL queries for v0.0.9
174 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);
176 // Update notes (these will be set as task text!)
177 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
180 case '0.1.0': // SQL queries for v0.1.0
181 addConfigAddSql('reg_points_mode', "ENUM('ref','direct') NOT NULL DEFAULT 'ref'");
183 // Update notes (these will be set as task text!)
184 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?");
187 case '0.1.1': // SQL queries for v0.1.1
188 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");
189 addConfigAddSql('index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
190 addConfigAddSql('index_cookie', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 365));
192 // Update notes (these will be set as task text!)
193 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.");
196 case '0.1.2': // SQL queries for v0.1.2
197 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);
198 addConfigAddSql('def_refid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
200 // Update notes (these will be set as task text!)
201 setExtensionUpdateNotes("Standard Referal-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
204 case '0.1.3': // SQL queries for v0.1.3
205 addConfigAddSql('refid_target', "ENUM('register','index') NOT NULL DEFAULT 'register'");
207 // Update notes (these will be set as task text!)
208 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
211 case '0.1.4': // SQL queries for v0.1.4
212 // Update notes (these will be set as task text!)
213 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
216 case '0.1.5': // SQL queries for v0.1.5
217 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_has_admin`");
219 // Update notes (these will be set as task text!)
220 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
223 case '0.1.6': // SQL queries for v0.1.6
224 addConfigAddSql('enable_title_deco', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
225 addConfigAddSql('title_left', "VARCHAR(10) NOT NULL DEFAULT '[--'");
226 addConfigAddSql('title_middle', "VARCHAR(10) NOT NULL DEFAULT '-'");
227 addConfigAddSql('title_right', "VARCHAR(10) NOT NULL DEFAULT '--]'");
228 addConfigAddSql('enable_mod_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
229 addConfigAddSql('enable_what_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
230 addAdminMenuSql('setup','config_title','Seitentitel ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
232 // Update notes (these will be set as task text!)
233 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.");
236 case '0.1.7': // SQL queries for v0.1.7
237 // Update notes (these will be set as task text!)
238 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
241 case '0.1.8': // SQL queries for v0.1.8
242 // Update notes (these will be set as task text!)
243 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
246 case '0.1.9': // SQL queries for v0.1.9
247 // Update notes (these will be set as task text!)
248 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
251 case '0.2.0': // SQL queries for v0.2.0
252 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_jackpot` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
254 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `payment` `payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
255 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `price` `price` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
257 // Update notes (these will be set as task text!)
258 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
261 case '0.2.1': // SQL queries for v0.2.1
262 addConfigAddSql('css_php', "ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
264 // Update notes (these will be set as task text!)
265 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
268 case '0.2.2': // SQL queries for v0.2.2
269 // Update notes (these will be set as task text!)
270 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
273 case '0.2.3': // SQL queries for v0.2.3
274 addConfigAddSql('guest_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
275 addConfigAddSql('member_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
276 addConfigAddSql('youre_here', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
278 // Update notes (these will be set as task text!)
279 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
282 case '0.2.4': // SQL queries for v0.2.4
283 // PNG image is the default
286 // Is the JPEG file found and required PHP function there?
287 if ((isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
288 // Switch to JPEG format
291 addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
293 // Update notes (these will be set as task text!)
294 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
297 case '0.2.5': // SQL queries for v0.2.5
298 // Update notes (these will be set as task text!)
299 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
302 case '0.2.6': // SQL queries for v0.2.6
303 addAdminMenuSql('user','sub_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen','Allen oder einem Mitglied {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen.', 8);
305 // Update notes (these will be set as task text!)
306 setExtensionUpdateNotes("Abzug von {?POINTS?} nun möglich.");
309 case '0.2.7': // SQL queries for v0.2.7
310 addConfigAddSql('stats_limit', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
311 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
313 // Update notes (these will be set as task text!)
314 setExtensionUpdateNotes("<ol>
315 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
316 <li>Mitgliederstatistik mit Seitennavigation.</li>
320 case '0.2.8': // SQL queries for v0.2.8
321 // Update notes (these will be set as task text!)
322 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
325 case '0.2.9': // SQL queries for v0.2.9
326 addConfigAddSql('mt_word', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
327 addConfigAddSql('mt_word2', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
328 addConfigAddSql('mt_word3', "VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
330 // Update notes (these will be set as task text!)
331 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
334 case '0.3.0': // SQL queries for v0.3.0
335 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
336 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailvergütungen...' WHERE `what`='payments' LIMIT 1");
338 // Update notes (these will be set as task text!)
339 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
342 case '0.3.1': // SQL queries for v0.3.1
343 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD UNIQUE KEY `ext_name` (`ext_name`)");
344 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD UNIQUE KEY `login` (`login`)");
345 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` ADD INDEX `visible` (`visible`)");
346 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` ADD UNIQUE KEY `level` (`level`)");
347 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD INDEX `level` (`level`)");
348 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD INDEX `data_type` (`data_type`)");
349 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD UNIQUE KEY `module` (`module`)");
350 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `action` (`action`)");
351 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `what` (`what`)");
352 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_type` (`task_type`)");
353 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `status` (`status`)");
354 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_created` (`task_created`)");
355 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD FULLTEXT `subject` (`subject`)");
356 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `subject` (`subject`)");
357 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD INDEX `ext_active` (`ext_active`)");
358 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `action` (`action`)");
359 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `what` (`what`)");
360 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `sort` (`sort`)");
361 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `visible` (`visible`)");
362 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `locked` (`locked`)");
363 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `what` (`what`)");
364 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `sort` (`sort`)");
365 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `visible` (`visible`)");
366 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `locked` (`locked`)");
367 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `visible` (`visible`)");
368 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `sort` (`sort`)");
370 // Update notes (these will be set as task text!)
371 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE KEY) und normale Schlüssel (INDEX) gesetzt.");
374 case '0.3.2': // SQL queries for v0.3.2
375 // Connection table between the menu system and the "logical area system"
376 addDropTableSql('admin_menu_las');
377 addCreateTableSql('admin_menu_las', "(
378 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
379 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
380 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
381 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
386 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Menu system -> LAS'");
388 // All "logical areas" together
389 addDropTableSql('admin_menu_las_data');
390 addCreateTableSql('admin_menu_las_data', "(
391 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
392 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
393 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
394 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
395 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
396 UNIQUE KEY (`la_id`),
400 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'LAS position and title data'");
402 // Which menu do you like?
403 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
406 addAdminMenuSql('setup', 'config_admin', 'Adminmenü', 'Diverse Einstellungen am Adminmenü vornehmen.', 9);
408 // Update notes (these will be set as task text!)
409 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.");
412 case '0.3.3': // SQL queries for v0.3.3
413 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
414 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
416 // The statistics table
417 addDropTableSql('admin_las_stats');
418 addCreateTableSql('admin_las_stats', "(
419 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
420 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
421 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
422 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
425 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'LAS click data'");
427 // Update notes (these will be set as task text!)
428 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.");
431 case '0.3.4': // SQL queries for v0.3.4
432 // Update notes (these will be set as task text!)
433 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
436 case '0.3.5': // SQL queries for v0.3.5
437 // List accounts with no referal
438 addMemberMenuSql('stats', NULL, 'Statistiken', 'Y', 'N', 4);
439 addMemberMenuSql('stats', 'stats2', 'Framekiller-Mails', 'Y', 'N', 2);
440 addMemberMenuSql('extras', NULL, 'Extras', 'Y', 'N', 5);
441 addMemberMenuSql('rals', NULL, 'Rallyes', 'Y', 'N', 6);
442 addMemberMenuSql('account', NULL, 'Ihr Account', 'Y', 'N', 7);
443 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`=1, `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
444 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=3 WHERE `what`='reflinks' LIMIT 1");
446 // Update notes (these will be set as task text!)
447 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
450 case '0.3.6': // SQL queries for v0.3.6
451 addConfigAddSql('salt_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
452 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
453 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` CHANGE `password` `password` VARCHAR(255) NOT NULL DEFAULT ''");
454 addConfigAddSql('rand_no', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
455 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
456 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
457 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
458 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
459 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
461 // Update notes (these will be set as task text!)
462 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
465 case '0.3.7': // SQL queries for v0.3.7
466 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
469 case '0.3.8': // SQL queries for v0.3.8
470 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
471 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
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.3.9': // SQL queries for v0.3.9
478 // Update notes (these will be set as task text!)
479 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
482 case '0.4.0': // SQL queries for v0.4.0
483 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
485 // Update notes (these will be set as task text!)
486 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
489 case '0.4.1': // SQL queries for v0.4.1
490 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
492 // Update notes (these will be set as task text!)
493 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
496 case '0.4.2': // SQL queries for v0.4.2
497 // Update notes (these will be set as task text!)
498 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
501 case '0.4.3': // SQL queries for v0.4.3
502 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
503 addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
504 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
505 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
506 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);
508 // Update notes (these will be set as task text!)
509 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
512 case '0.4.4': // SQL queries for v0.4.4
513 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
514 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
515 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
516 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
517 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
518 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
520 // Make this depending on ext-menu
521 addExtensionDependency('menu');
523 // Update notes (these will be set as task text!)
524 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
527 case '0.4.5': // SQL queries for v0.4.5
528 addConfigAddSql('last_month', 'CHAR(2) NOT NULL DEFAULT 00');
529 addConfigAddSql('last_week', 'CHAR(2) NOT NULL DEFAULT 00');
531 // Update notes (these will be set as task text!)
532 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
535 case '0.4.6': // SQL queries for v0.4.6
536 // Update notes (these will be set as task text!)
537 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
540 case '0.4.7': // SQL queries for v0.4.7
541 // Update notes (these will be set as task text!)
542 setExtensionUpdateNotes("Veraltetes Update.");
545 case '0.4.8': // SQL queries for v0.4.8
546 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)');
548 // Update notes (these will be set as task text!)
549 setExtensionUpdateNotes("Index für Betreff eingefügt.");
552 case '0.4.9': // SQL queries for v0.4.9
553 // Update notes (these will be set as task text!)
554 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
557 case '0.5.0': // SQL queries for v0.5.0
558 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`');
559 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`');
560 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` (`userid`,`level`)');
562 // Update notes (these will be set as task text!)
563 setExtensionUpdateNotes("Referal-System unterstützt nun detailierte Referal-Übersicht und vieles mehr.");
566 case '0.5.1': // SQL queries for v0.5.1
567 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`');
569 // Update notes (these will be set as task text!)
570 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
573 case '0.5.2': // SQL queries for v0.5.2
574 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
576 // Update notes (these will be set as task text!)
577 setExtensionUpdateNotes("Prozentsätze können nun fünf Stellen hinter dem Komma sein.");
580 case '0.5.3': // SQL queries for v0.5.3
581 addConfigAddSql('session_save_path', "VARCHAR(255) NOT NULL DEFAULT ''");
582 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);
584 // Update notes (these will be set as task text!)
585 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
588 case '0.5.4': // SQL queries for v0.5.4
589 addMemberMenuSql('main', 'reflist', 'Ref-Übersicht', 'N', 'Y', 5);
591 // Depends on refback extension
592 addExtensionDependency('refback');
594 // Update notes (these will be set as task text!)
595 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
598 case '0.5.5': // SQL queries for v0.5.5
599 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
601 // Update notes (these will be set as task text!)
602 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
605 case '0.5.6': // SQL queries for v0.5.6
606 // Update notes (these will be set as task text!)
607 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
610 case '0.5.7': // SQL queries for v0.5.7
611 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
613 // Update notes (these will be set as task text!)
614 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
617 case '0.5.8': // SQL queries for v0.5.8
618 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`');
620 // Update notes (these will be set as task text!)
621 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
624 case '0.5.9': // SQL queries for v0.5.9
625 // Table 'filters' is vital because many functionality depends on it, so don't remove it
626 addCreateTableSql('filters', "(
627 `filter_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
628 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
629 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
630 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
631 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
632 UNIQUE `name_function` (`filter_name` , `filter_function`),
633 PRIMARY KEY (`filter_id`)
634 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Filter system'");
635 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
637 // Update notes (these will be set as task text!)
638 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
641 case '0.6.0': // SQL queries for v0.6.0
642 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
644 // Update notes (these will be set as task text!)
645 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
648 case '0.6.1': // SQL queries for v0.6.1
649 // Update notes (these will be set as task text!)
650 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
653 case '0.6.2': // SQL queries for v0.6.2
654 // Depends on refback extension
655 addExtensionDependency('user');
657 // Update notes (these will be set as task text!)
658 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
661 case '0.6.3': // SQL queries for v0.6.3
662 // Update notes (these will be set as task text!)
663 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Einträge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
665 // Add special fix include to fix filters
666 addIncludeToPool('extension', 'inc/fix_filters.php');
669 case '0.6.4': // SQL queries for v0.6.4
671 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
672 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
673 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
674 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
676 // Update notes (these will be set as task text!)
677 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
680 case '0.6.5': // SQL queries for v0.6.5
681 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
683 // Update notes (these will be set as task text!)
684 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
687 case '0.6.6': // SQL queries for v0.6.6
688 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
689 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
690 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
692 // Update notes (these will be set as task text!)
693 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
696 case '0.6.7': // SQL queries for v0.6.7
697 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
699 // Update notes (these will be set as task text!)
700 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
703 case '0.6.8': // SQL queries for v0.6.8
704 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
705 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
706 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
707 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
708 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
709 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
711 // Update notes (these will be set as task text!)
712 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
715 case '0.6.9': // SQL queries for 0.6.9
717 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
719 // Update notes (these will be set as task text!)
720 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
723 case '0.7.0': // SQL queries for 0.7.0
725 addDropTableSql('dns_cache');
726 addCreateTableSql('dns_cache', "(
727 `hostname` VARCHAR(255) NOT NULL,
728 `ip` VARCHAR(15) NOT NULL,
729 `added` DATETIME NOT NULL,
730 PRIMARY KEY (`hostname`),
732 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Cache for DNS requests'");
735 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
738 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
740 // Update notes (these will be set as task text!)
741 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
744 case '0.7.1': // SQL queries for v0.7.1
745 // This update just depends on ext-timezone to make integration of an essential extension much easier
746 addExtensionDependency('timezone');
748 // Update notes (these will be set as task text!)
749 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
752 case '0.7.2': // SQL queries for v0.7.2
753 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
755 // Update notes (these will be set as task text!)
756 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
759 case '0.7.3': // SQL queries for v0.7.3
760 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_name` `filter_name` VARCHAR(50) NOT NULL DEFAULT ''");
761 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_function` `filter_function` VARCHAR(100) NOT NULL DEFAULT ''");
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.4': // SQL queries for v0.7.4
768 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
770 // Update notes (these will be set as task text!)
771 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
774 case '0.7.5': // SQL queries for v0.7.5
775 addConfigAddSql('last_hour', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
777 // Update notes (these will be set as task text!)
778 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
781 case '0.7.6': // SQL queries for v0.7.6
782 addConfigChangeSql('last_month', 'last_month', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
783 addConfigChangeSql('last_week', 'last_week', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
785 // Update notes (these will be set as task text!)
786 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
789 case '0.7.7': // SQL queries for v0.7.7
790 addMemberMenuSql('earn', NULL, 'Verdienen', 'Y', 'N', 2);
791 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn', `sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
793 // Update notes (these will be set as task text!)
794 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
797 case '0.7.8': // SQL queries for v0.7.8
798 addConfigChangeSql('reg_points_mode', 'reg_points_mode', "ENUM('REF','DIRECT') NOT NULL DEFAULT 'REFERAL'");
800 // Update notes (these will be set as task text!)
801 setExtensionUpdateNotes("Konfigurationseinträge mit Spaltentyp <strong>ENUM</strong> werden nun immer komplett gross geschrieben.");
804 case '0.7.9': // SQL queries for v0.7.9
805 addExtensionSQL("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_email_max_rec' WHERE `what`='config_email' LIMIT 1");
807 // Update notes (these will be set as task text!)
808 setExtensionUpdateNotes("Adminscript <strong>what-config_email.php</strong> nach <strong>what-list_email_max_rec.php</strong> umbenannt.");
811 case '0.8.0': // SQL queries for v0.8.0
812 // Points account data
813 addDropTableSql('points_data');
814 addCreateTableSql('points_data', "(
815 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
816 `ext_name` VARCHAR(255) NOT NULL DEFAULT '',
817 `column_name` VARCHAR(255) NOT NULL DEFAULT 'points',
818 `locked_mode` ENUM('LOCKED','UNLOCKED') NOT NULL DEFAULT 'LOCKED',
819 `payment_method` ENUM('DIRECT','REF') NOT NULL DEFAULT 'REF',
822 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Points account data'");
825 addAdminMenuSql('setup','list_point_accounts','Guthabenkonten...','Veralten Sie hier bequem Einstellungen zu den Guthabenkonten.',5);
827 // Update notes (these will be set as task text!)
828 setExtensionUpdateNotes("Tabelle <em>points_data</em> erzeugt, diese soll das {?POINTS?}-Guthaben komplett lenken.");
831 case '0.8.1': // SQL queries for v0.8.1
832 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `level` `level` TINYINT(3) UNSIGNED NULL DEFAULT NULL');
833 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_refdepths` SET `level`=NULL WHERE `level`=0 LIMIT 1');
835 // Update notes (these will be set as task text!)
836 setExtensionUpdateNotes("Level 0 ist nun auch NULL.");
841 case 'modify': // When the extension got modified
844 case 'test': // For testing purposes
847 case 'init': // Do stuff when extension is initialized
849 setConfigEntry('secret_key', '');
851 // Read key from secret file
852 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
853 // Maybe need setup of secret key!
854 loadIncludeOnce('inc/gen_sql_patches.php');
858 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
859 // File hash fas generated so we can also file the secret file... hopefully.
860 $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
861 if (isFileReadable($hashFile)) {
863 setConfigEntry('secret_key', readFromFile($hashFile));
865 // Remove it from database
866 updateConfiguration('file_hash', '');
868 // Cannot read secret file!
869 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
873 // Transfer words/numbers to constants if config entry is found
874 if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
875 setConfigEntry('POINTS', getPointsWord());
879 default: // Unknown extension mode
880 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));