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 '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,
397 UNIQUE KEY (`la_id`),
400 '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,
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', 4);
439 addMemberMenuSql('stats', 'stats2', 'Framekiller-Mails', 2);
440 addMemberMenuSql('extras', NULL, 'Extras', 5);
441 addMemberMenuSql('rals', NULL, 'Rallyes', 6);
442 addMemberMenuSql('account', NULL, 'Ihr Account', 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', 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 PRIMARY KEY (`filter_id`),
633 UNIQUE `name_function` (`filter_name` , `filter_function`)",
637 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
639 // Update notes (these will be set as task text!)
640 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
643 case '0.6.0': // SQL queries for v0.6.0
644 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
646 // Update notes (these will be set as task text!)
647 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
650 case '0.6.1': // SQL queries for v0.6.1
651 // Update notes (these will be set as task text!)
652 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
655 case '0.6.2': // SQL queries for v0.6.2
656 // Depends on refback extension
657 addExtensionDependency('user');
659 // Update notes (these will be set as task text!)
660 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
663 case '0.6.3': // SQL queries for v0.6.3
664 // Update notes (these will be set as task text!)
665 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Einträge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
667 // Add special fix include to fix filters
668 addIncludeToPool('extension', 'inc/fix_filters.php');
671 case '0.6.4': // SQL queries for v0.6.4
673 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
674 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
675 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
676 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
678 // Update notes (these will be set as task text!)
679 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
682 case '0.6.5': // SQL queries for v0.6.5
683 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
685 // Update notes (these will be set as task text!)
686 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
689 case '0.6.6': // SQL queries for v0.6.6
690 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
691 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
692 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
694 // Update notes (these will be set as task text!)
695 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
698 case '0.6.7': // SQL queries for v0.6.7
699 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
701 // Update notes (these will be set as task text!)
702 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
705 case '0.6.8': // SQL queries for v0.6.8
706 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_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?}_guest_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
709 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
710 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
711 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
713 // Update notes (these will be set as task text!)
714 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
717 case '0.6.9': // SQL queries for 0.6.9
719 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
721 // Update notes (these will be set as task text!)
722 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
725 case '0.7.0': // SQL queries for 0.7.0
727 addDropTableSql('dns_cache');
728 addCreateTableSql('dns_cache', "
729 `hostname` VARCHAR(255) NOT NULL,
730 `ip` VARCHAR(15) NOT NULL,
731 `added` DATETIME NOT NULL,
732 PRIMARY KEY (`hostname`),
734 'Cache for DNS requests');
737 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
740 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
742 // Update notes (these will be set as task text!)
743 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
746 case '0.7.1': // SQL queries for v0.7.1
747 // This update just depends on ext-timezone to make integration of an essential extension much easier
748 addExtensionDependency('timezone');
750 // Update notes (these will be set as task text!)
751 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
754 case '0.7.2': // SQL queries for v0.7.2
755 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
757 // Update notes (these will be set as task text!)
758 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
761 case '0.7.3': // SQL queries for v0.7.3
762 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_name` `filter_name` VARCHAR(50) NOT NULL DEFAULT ''");
763 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_function` `filter_function` VARCHAR(100) NOT NULL DEFAULT ''");
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.4': // SQL queries for v0.7.4
770 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
772 // Update notes (these will be set as task text!)
773 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
776 case '0.7.5': // SQL queries for v0.7.5
777 addConfigAddSql('last_hour', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
779 // Update notes (these will be set as task text!)
780 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
783 case '0.7.6': // SQL queries for v0.7.6
784 addConfigChangeSql('last_month', 'last_month', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
785 addConfigChangeSql('last_week', 'last_week', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
787 // Update notes (these will be set as task text!)
788 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
791 case '0.7.7': // SQL queries for v0.7.7
792 addMemberMenuSql('earn', NULL, 'Verdienen', 2);
793 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn', `sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
795 // Update notes (these will be set as task text!)
796 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
799 case '0.7.8': // SQL queries for v0.7.8
800 addConfigChangeSql('reg_points_mode', 'reg_points_mode', "ENUM('REF','DIRECT') NOT NULL DEFAULT 'REFERAL'");
802 // Update notes (these will be set as task text!)
803 setExtensionUpdateNotes("Konfigurationseinträge mit Spaltentyp <strong>ENUM</strong> werden nun immer komplett gross geschrieben.");
806 case '0.7.9': // SQL queries for v0.7.9
807 addExtensionSQL("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_email_max_rec' WHERE `what`='config_email' LIMIT 1");
809 // Update notes (these will be set as task text!)
810 setExtensionUpdateNotes("Adminscript <strong>what-config_email.php</strong> nach <strong>what-list_email_max_rec.php</strong> umbenannt.");
813 case '0.8.0': // SQL queries for v0.8.0
814 // Points account data
815 addDropTableSql('points_data');
816 addCreateTableSql('points_data', "
817 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
818 `ext_name` VARCHAR(255) NOT NULL DEFAULT '',
819 `column_name` VARCHAR(255) NOT NULL DEFAULT 'points',
820 `locked_mode` ENUM('LOCKED','UNLOCKED') NOT NULL DEFAULT 'LOCKED',
821 `payment_method` ENUM('DIRECT','REF') NOT NULL DEFAULT 'REF',
824 'Points account data');
827 addAdminMenuSql('setup','list_point_accounts','Guthabenkonten...','Veralten Sie hier bequem Einstellungen zu den Guthabenkonten.',5);
829 // Update notes (these will be set as task text!)
830 setExtensionUpdateNotes("Tabelle <em>points_data</em> erzeugt, diese soll das {?POINTS?}-Guthaben komplett lenken.");
833 case '0.8.1': // SQL queries for v0.8.1
834 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `level` `level` TINYINT(3) UNSIGNED NULL DEFAULT NULL');
835 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_refdepths` SET `level`=NULL WHERE `level`=0 LIMIT 1');
837 // Update notes (these will be set as task text!)
838 setExtensionUpdateNotes("Level 0 ist nun auch NULL.");
843 case 'modify': // When the extension got modified
846 case 'test': // For testing purposes
849 case 'init': // Do stuff when extension is initialized
851 setConfigEntry('secret_key', '');
853 // Read key from secret file
854 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
855 // Maybe need setup of secret key!
856 loadIncludeOnce('inc/gen_sql_patches.php');
860 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
861 // File hash fas generated so we can also file the secret file... hopefully.
862 $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
863 if (isFileReadable($hashFile)) {
865 setConfigEntry('secret_key', readFromFile($hashFile));
867 // Remove it from database
868 updateConfiguration('file_hash', '');
870 // Cannot read secret file!
871 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
875 // Transfer words/numbers to constants if config entry is found
876 if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
877 setConfigEntry('POINTS', getPointsWord());
881 default: // Unknown extension mode
882 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));