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 - 2012 by Mailer Developer Team *
20 * For more information visit: http://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.9.6');
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.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', '0.8.2', '0.8.3', '0.8.4', '0.8.5', '0.8.6', '0.8.7', '0.8.8', '0.8.9', '0.9.0', '0.9.1', '0.9.2', '0.9.3', '0.9.4', '0.9.5', '0.9.6'));
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 ext-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');
64 addDropTableSql('server_name_log');
66 // Delete admin menu entries
67 addExtensionSql("DELETE LOW_PRIORITY FROM
68 `{?_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 unregisterExtensionPointsData('pool_payback');
101 unregisterExtensionPointsData('mail_deleted');
102 unregisterExtensionPointsData('admin_add_single');
103 unregisterExtensionPointsData('admin_add_single_ref');
104 unregisterExtensionPointsData('admin_add_all');
105 unregisterExtensionPointsData('admin_add_all_ref');
108 unregisterFilter(__FILE__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', TRUE, isExtensionDryRun());
109 unregisterFilter(__FILE__, __LINE__, 'add_history_entry', 'ADD_HISTORY_ENTRY', TRUE, isExtensionDryRun());
110 unregisterFilter(__FILE__, __LINE__, 'init', 'GENERATE_FILE_SECRET_HASH', TRUE, isExtensionDryRun());
111 unregisterFilter(__FILE__, __LINE__, 'extra_autopurge', 'SERVER_NAME_EXTRA_AUTOPURGE', TRUE, isExtensionDryRun());
114 case 'activate': // Do stuff when admin activates this extension
115 // SQL commands to run
119 case 'deactivate': // Do stuff when admin deactivates this extension
120 // SQL commands to run
124 case 'update': // Update an extension
125 switch (getCurrentExtensionVersion()) {
126 case '0.0.1': // SQL queries for v0.0.1
127 addAdminMenuSql('setup', 'config_extensions', 'Erweitungsmanagement', 'Alle Einstellungen am Erweiterungsmanagement.', 10);
129 // Update notes (these will be set as task text!)
130 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.");
133 case '0.0.2': // SQL queries for v0.0.2
134 addConfigChangeSql('auto_purge', 'auto_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay()*14));
136 // Update notes (these will be set as task text!)
137 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.)");
140 case '0.0.3': // SQL queries for v0.0.3
141 addConfigAddSql('points_word', "VARCHAR(255) NOT NULL DEFAULT '{OPEN_TEMPLATE}DEFAULT_POINTS{CLOSE_TEMPLATE}'");
143 // Update notes (these will be set as task text!)
144 setExtensionUpdateNotes("Das Wort "Punkte" kann nun per Datenbank geändert werden. Damit können anstelle des Wortes Punkte auch Klammlose, Wernis, Primera und auch € geschrieben werden.");
147 case '0.0.4': // SQL queries for v0.0.4
148 addConfigAddSql('mails_page', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
150 // Update notes (these will be set as task text!)
151 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugefügt.");
154 case '0.0.5': // SQL queries for v0.0.5
155 addConfigAddSql('index_home', "VARCHAR(255) NOT NULL DEFAULT 'welcome'");
156 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);
158 // Update notes (these will be set as task text!)
159 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
162 case '0.0.6': // SQL queries for v0.0.6
163 addExtensionAddTableColumnSql('extensions', 'ext_has_css', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
165 // Update notes (these will be set as task text!)
166 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.");
169 case '0.0.7': // SQL queries for v0.0.7
170 addConfigAddSql('verbose_sql', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
172 // Update notes (these will be set as task text!)
173 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
176 case '0.0.8': // SQL queries for v0.0.8
177 addConfigAddSql('menu_blur_spacer', "VARCHAR(255) NOT NULL DEFAULT ' <strong><big>·</big></strong> '");
179 // Update notes (these will be set as task text!)
180 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
183 case '0.0.9': // SQL queries for v0.0.9
184 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);
186 // Update notes (these will be set as task text!)
187 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
190 case '0.1.0': // SQL queries for v0.1.0
191 // Update notes (these will be set as task text!)
192 setExtensionUpdateNotes("Soll der einmalige Ref-Bonus über das Referral-System (also alle oberen Refs bekommen auch etwas davon ab) oder direkt dem Werber aufgebucht werden?");
195 case '0.1.1': // SQL queries for v0.1.1
196 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");
197 addConfigAddSql('index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
198 addConfigAddSql('index_cookie', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 365));
200 // Update notes (these will be set as task text!)
201 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.");
204 case '0.1.2': // SQL queries for v0.1.2
205 addAdminMenuSql('setup','config_refid','Standard-Ref-Id','Stellen Sie hier die Mitglieds-Id ein, die genommen werden soll, wenn der Gast n icht per Referral-Link Ihren {?mt_word?} aufgerufen hat.', 7);
206 addConfigAddSql('def_refid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
208 // Update notes (these will be set as task text!)
209 setExtensionUpdateNotes("Standard Referral-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
212 case '0.1.3': // SQL queries for v0.1.3
213 addConfigAddSql('refid_target', "ENUM('register','index') NOT NULL DEFAULT 'register'");
215 // Update notes (these will be set as task text!)
216 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
219 case '0.1.4': // SQL queries for v0.1.4
220 // Update notes (these will be set as task text!)
221 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
224 case '0.1.5': // SQL queries for v0.1.5
225 addExtensionDropTableColumnSql('extensions', 'ext_has_admin');
227 // Update notes (these will be set as task text!)
228 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
231 case '0.1.6': // SQL queries for v0.1.6
232 addConfigAddSql('enable_title_deco', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
233 addConfigAddSql('title_left', "VARCHAR(10) NOT NULL DEFAULT '[--'");
234 addConfigAddSql('title_middle', "VARCHAR(10) NOT NULL DEFAULT '-'");
235 addConfigAddSql('title_right', "VARCHAR(10) NOT NULL DEFAULT '--]'");
236 addConfigAddSql('enable_mod_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
237 addConfigAddSql('enable_what_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
238 addAdminMenuSql('setup','config_title','Seitentitel ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
240 // Update notes (these will be set as task text!)
241 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.");
244 case '0.1.7': // SQL queries for v0.1.7
245 // Update notes (these will be set as task text!)
246 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
249 case '0.1.8': // SQL queries for v0.1.8
250 // Update notes (these will be set as task text!)
251 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
254 case '0.1.9': // SQL queries for v0.1.9
255 // Update notes (these will be set as task text!)
256 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
259 case '0.2.0': // SQL queries for v0.2.0
260 addExtensionChangeTableColumnSql('jackpot', 'points', 'points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
262 addExtensionChangeTableColumnSql('payments', 'payment', 'payment', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
263 addExtensionChangeTableColumnSql('payments', 'price', 'price', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
265 // Update notes (these will be set as task text!)
266 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
269 case '0.2.1': // SQL queries for v0.2.1
270 addConfigAddSql('css_php', "ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
272 // Update notes (these will be set as task text!)
273 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
276 case '0.2.2': // SQL queries for v0.2.2
277 // Update notes (these will be set as task text!)
278 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
281 case '0.2.3': // SQL queries for v0.2.3
282 addConfigAddSql('guest_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
283 addConfigAddSql('member_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
284 addConfigAddSql('youre_here', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
286 // Update notes (these will be set as task text!)
287 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
290 case '0.2.4': // SQL queries for v0.2.4
291 // PNG image is the default
294 // Is the JPEG file found and required PHP function there?
295 if ((!isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.png')) || (!function_exists('imagecreatefrompng'))) {
296 // Switch to JPEG format because PNG is not available
299 addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
301 // Update notes (these will be set as task text!)
302 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
305 case '0.2.5': // SQL queries for v0.2.5
306 // Update notes (these will be set as task text!)
307 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
310 case '0.2.6': // SQL queries for v0.2.6
311 // Update notes (these will be set as task text!)
312 setExtensionUpdateNotes("Verschoben nach <strong>ext-user</strong>.");
315 case '0.2.7': // SQL queries for v0.2.7
316 addConfigAddSql('stats_limit', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
317 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
319 // Update notes (these will be set as task text!)
320 setExtensionUpdateNotes("<ol>
321 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
322 <li>Mitgliederstatistik mit Seitennavigation.</li>
326 case '0.2.8': // SQL queries for v0.2.8
327 // Update notes (these will be set as task text!)
328 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
331 case '0.2.9': // SQL queries for v0.2.9
332 addConfigAddSql('mt_word', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
333 addConfigAddSql('mt_word2', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
334 addConfigAddSql('mt_word3', "VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
336 // Update notes (these will be set as task text!)
337 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
340 case '0.3.0': // SQL queries for v0.3.0
341 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referral-Ebenen' WHERE `what`='config_points' LIMIT 1");
342 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailvergütungen...' WHERE `what`='payments' LIMIT 1");
344 // Update notes (these will be set as task text!)
345 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
348 case '0.3.1': // SQL queries for v0.3.1
349 addExtensionAddTableUniqueSql('extensions', 'ext_name', '(`ext_name`)');
350 addExtensionAddTableUniqueSql('admins', 'login', '(`login`)');
351 addExtensionAddTableIndexSql('refbanner', 'visible', '(`visible`)');
352 addExtensionAddTableUniqueSql('refdepths', 'level', '(`level`)');
353 addExtensionAddTableIndexSql('refsystem', 'level', '(`level`)');
354 addExtensionAddTableIndexSql('pool', 'data_type', '(`data_type`)');
355 addExtensionAddTableUniqueSql('mod_reg', 'module', '(`module`)');
356 addExtensionAddTableIndexSql('admin_menu', 'action', '(`action`)');
357 addExtensionAddTableIndexSql('admin_menu', 'what', '(`what`)');
358 addExtensionAddTableIndexSql('extensions', 'ext_active', '(`ext_active`)');
359 addExtensionAddTableIndexSql('guest_menu', 'action', '(`action`)');
360 addExtensionAddTableIndexSql('guest_menu', 'what', '(`what`)');
361 addExtensionAddTableIndexSql('guest_menu', 'sort', '(`sort`)');
362 addExtensionAddTableIndexSql('guest_menu', 'visible', '(`visible`)');
363 addExtensionAddTableIndexSql('guest_menu', 'locked', '(`locked`)');
364 addExtensionAddTableIndexSql('member_menu', 'what', '(`what`)');
365 addExtensionAddTableIndexSql('member_menu', 'sort', '(`sort`)');
366 addExtensionAddTableIndexSql('member_menu', 'visible', '(`visible`)');
367 addExtensionAddTableIndexSql('member_menu', 'locked', '(`locked`)');
368 addExtensionAddTableIndexSql('cats', 'visible', '(`visible`)');
369 addExtensionAddTableIndexSql('cats', 'sort', '(`sort`)');
371 // Update notes (these will be set as task text!)
372 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE) und normale Schlüssel (INDEX) gesetzt.");
375 case '0.3.2': // SQL queries for v0.3.2
376 // Connection table between the menu system and the "logical area system"
377 addDropTableSql('admin_menu_las');
378 addCreateTableSql('admin_menu_las', "
379 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
380 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
381 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
382 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
387 'Menu system -> LAS');
389 // All "logical areas" together
390 addDropTableSql('admin_menu_las_data');
391 addCreateTableSql('admin_menu_las_data', "
392 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
393 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
394 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
395 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
396 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
398 UNIQUE INDEX (`la_id`),
401 'LAS position and title data');
403 // Which menu do you like?
404 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
407 addAdminMenuSql('setup', 'config_admin', 'Adminmenü', 'Diverse Einstellungen am Adminmenü vornehmen.', 9);
409 // Update notes (these will be set as task text!)
410 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.");
413 case '0.3.3': // SQL queries for v0.3.3
414 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
415 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
417 // The statistics table
418 addDropTableSql('admin_las_stats');
419 addCreateTableSql('admin_las_stats', "
420 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
421 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
422 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
423 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
428 // Update notes (these will be set as task text!)
429 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.");
432 case '0.3.4': // SQL queries for v0.3.4
433 // Update notes (these will be set as task text!)
434 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
437 case '0.3.5': // SQL queries for v0.3.5
438 // List accounts with no referral
439 addMemberMenuSql('stats', NULL, 'Statistiken', 4);
440 addMemberMenuSql('stats', 'stats2', 'Framekiller-Mails', 2);
441 addMemberMenuSql('extras', NULL, 'Extras', 5);
442 addMemberMenuSql('rals', NULL, 'Rallyes', 6);
443 addMemberMenuSql('account', NULL, 'Ihr Account', 7);
444 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats',`sort`=1,`title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
445 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=3 WHERE `what`='reflinks' LIMIT 1");
447 // Update notes (these will be set as task text!)
448 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
451 case '0.3.6': // SQL queries for v0.3.6
452 addConfigAddSql('salt_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
453 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
454 addExtensionChangeTableColumnSql('admins', 'password', 'password', "VARCHAR(255) NOT NULL DEFAULT ''");
455 addConfigAddSql('rand_no', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
456 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
457 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
458 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
459 addExtensionAddTableColumnSql('mod_reg', 'has_menu', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
460 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
462 // Update notes (these will be set as task text!)
463 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
466 case '0.3.7': // SQL queries for v0.3.7
467 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
470 case '0.3.8': // SQL queries for v0.3.8
471 addExtensionChangeTableColumnSql('admin_menu', 'descr', 'descr', 'MEDIUMTEXT NULL');
472 addExtensionChangeTableColumnSql('pool', 'text', 'text', 'LONGTEXT NOT NULL');
474 // Update notes (these will be set as task text!)
475 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
478 case '0.3.9': // SQL queries for v0.3.9
479 // Update notes (these will be set as task text!)
480 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
483 case '0.4.0': // SQL queries for v0.4.0
484 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
486 // Update notes (these will be set as task text!)
487 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
490 case '0.4.1': // SQL queries for v0.4.1
491 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
493 // Update notes (these will be set as task text!)
494 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
497 case '0.4.2': // SQL queries for v0.4.2
498 // Update notes (these will be set as task text!)
499 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
502 case '0.4.3': // SQL queries for v0.4.3
503 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
504 addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
505 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
506 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
507 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 z.B. Updates, Abfragen von Netzwerkupdates über diesen tätigt.', 15);
509 // Update notes (these will be set as task text!)
510 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
513 case '0.4.4': // SQL queries for v0.4.4
514 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
515 addExtensionChangeTableColumnSql('guest_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
516 addExtensionChangeTableColumnSql('member_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
517 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
518 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
519 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
521 // Make this depending on ext-menu
522 addExtensionDependency('menu');
524 // Update notes (these will be set as task text!)
525 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
528 case '0.4.5': // SQL queries for v0.4.5
529 addConfigAddSql('last_month', 'CHAR(2) NOT NULL DEFAULT 00');
530 addConfigAddSql('last_week', 'CHAR(2) NOT NULL DEFAULT 00');
532 // Update notes (these will be set as task text!)
533 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
536 case '0.4.6': // SQL queries for v0.4.6
537 // Update notes (these will be set as task text!)
538 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
541 case '0.4.7': // SQL queries for v0.4.7
542 // Update notes (these will be set as task text!)
543 setExtensionUpdateNotes("Veraltetes Update.");
546 case '0.4.8': // SQL queries for v0.4.8
547 // Update notes (these will be set as task text!)
548 setExtensionUpdateNotes("Update nach <strong>ext-task</strong> verschoben.");
551 case '0.4.9': // SQL queries for v0.4.9
552 // Update notes (these will be set as task text!)
553 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
556 case '0.5.0': // SQL queries for v0.5.0
557 addExtensionDropTableIndexSql('refsystem', 'level');
558 addExtensionDropTableIndexSql('refsystem', 'userid');
559 addExtensionAddTableIndexSql('refsystem', 'userid_level', '(`userid`, `level`)');
561 // Update notes (these will be set as task text!)
562 setExtensionUpdateNotes("Referral-System unterstützt nun detailierte Referral-Übersicht und vieles mehr.");
565 case '0.5.1': // SQL queries for v0.5.1
566 addExtensionDropTableColumnSql('member_menu', 'descr');
568 // Update notes (these will be set as task text!)
569 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
572 case '0.5.2': // SQL queries for v0.5.2
573 addExtensionChangeTableColumnSql('refdepths', 'percents', 'percents', 'FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
575 // Update notes (these will be set as task text!)
576 setExtensionUpdateNotes("Prozentsätze können nun fünf Stellen hinter dem Komma sein.");
579 case '0.5.3': // SQL queries for v0.5.3
580 addConfigAddSql('session_save_path', "VARCHAR(255) NOT NULL DEFAULT ''");
581 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);
583 // Update notes (these will be set as task text!)
584 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
587 case '0.5.4': // SQL queries for v0.5.4
588 addMemberMenuSql('main', 'reflist', 'Ref-Übersicht', 5);
590 // Update notes (these will be set as task text!)
591 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
594 case '0.5.5': // SQL queries for v0.5.5
595 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
597 // Update notes (these will be set as task text!)
598 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
601 case '0.5.6': // SQL queries for v0.5.6
602 // Update notes (these will be set as task text!)
603 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
606 case '0.5.7': // SQL queries for v0.5.7
607 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
609 // Update notes (these will be set as task text!)
610 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
613 case '0.5.8': // SQL queries for v0.5.8
614 addExtensionDropTableColumnSql('extensions', 'ext_lang_file');
616 // Update notes (these will be set as task text!)
617 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
620 case '0.5.9': // SQL queries for v0.5.9
621 // Table 'filters' is vital because many functionality depends on it, so don't remove it
622 addCreateTableSql('filters', "
623 `filter_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
624 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
625 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
626 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
627 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
628 PRIMARY KEY (`filter_id`),
629 UNIQUE INDEX `name_function` (`filter_name`, `filter_function`)",
633 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
635 // Update notes (these will be set as task text!)
636 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
639 case '0.6.0': // SQL queries for v0.6.0
640 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
642 // Update notes (these will be set as task text!)
643 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
646 case '0.6.1': // SQL queries for v0.6.1
647 // Update notes (these will be set as task text!)
648 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
651 case '0.6.2': // SQL queries for v0.6.2
652 // Depends on refback extension
653 addExtensionDependency('user');
655 // Update notes (these will be set as task text!)
656 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
659 case '0.6.3': // SQL queries for v0.6.3
660 // Update notes (these will be set as task text!)
661 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Einträge und Unique-Key auf <span class=\"bad\">filter_name</span> und <span class=\"bad\">filter_function</span> zusammen gesetzt.");
663 // Add special fix include to fix filters
664 addIncludeToPool('extension', 'inc/fix_filters.php');
667 case '0.6.4': // SQL queries for v0.6.4
669 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
670 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
671 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
672 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
674 // Update notes (these will be set as task text!)
675 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
678 case '0.6.5': // SQL queries for v0.6.5
679 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
681 // Update notes (these will be set as task text!)
682 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
685 case '0.6.6': // SQL queries for v0.6.6
686 addAdminMenuSql('setup', 'config_secure', 'Sicherheitseinstellungen', 'Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.', 9);
687 addAdminMenuSql('setup', 'config_points', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}', 'Stellen Sie hier die Willkommensgutschrift, Referral-Gutschrift (einmalige) usw. ein.', 10);
688 addAdminMenuSql('email', 'email_archiv', 'E-Mail Archiv', 'Sehen Sie sich hier bereits gesendete Mails an.', 6);
690 // Update notes (these will be set as task text!)
691 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
694 case '0.6.7': // SQL queries for v0.6.7
695 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
697 // Update notes (these will be set as task text!)
698 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
701 case '0.6.8': // SQL queries for v0.6.8
702 addExtensionChangeTableColumnSql('admin_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
703 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
704 addExtensionChangeTableColumnSql('guest_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
705 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
706 addExtensionChangeTableColumnSql('member_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
707 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
709 // Update notes (these will be set as task text!)
710 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
713 case '0.6.9': // SQL queries for 0.6.9
715 registerFilter(__FILE__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', FALSE, TRUE, isExtensionDryRun());
717 // Update notes (these will be set as task text!)
718 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
721 case '0.7.0': // SQL queries for 0.7.0
723 addDropTableSql('dns_cache');
724 addCreateTableSql('dns_cache', "
725 `hostname` VARCHAR(255) NOT NULL,
726 `ip` VARCHAR(15) NOT NULL,
727 `added` DATETIME NOT NULL,
728 PRIMARY KEY (`hostname`),
730 'Cache for DNS requests');
733 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
736 registerFilter(__FILE__, __LINE__, 'reset', 'CLEANUP_DNS_CACHE', FALSE, TRUE, isExtensionDryRun());
738 // Update notes (these will be set as task text!)
739 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
742 case '0.7.1': // SQL queries for v0.7.1
743 // This update just depends on ext-timezone to make integration of an essential extension much easier
744 addExtensionDependency('timezone');
746 // Update notes (these will be set as task text!)
747 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
750 case '0.7.2': // SQL queries for v0.7.2
751 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
753 // Update notes (these will be set as task text!)
754 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
757 case '0.7.3': // SQL queries for v0.7.3
758 addExtensionChangeTableColumnSql('filters', 'filter_name', 'filter_name', "VARCHAR(50) NOT NULL DEFAULT ''");
759 addExtensionChangeTableColumnSql('filters', 'filter_function', 'filter_function', "VARCHAR(100) NOT NULL DEFAULT ''");
761 // Update notes (these will be set as task text!)
762 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
765 case '0.7.4': // SQL queries for v0.7.4
766 addExtensionAddTableColumnSql('pool', 'mails_sent', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
768 // Update notes (these will be set as task text!)
769 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
772 case '0.7.5': // SQL queries for v0.7.5
773 addConfigAddSql('last_hour', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
775 // Update notes (these will be set as task text!)
776 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
779 case '0.7.6': // SQL queries for v0.7.6
780 addConfigChangeSql('last_month', 'last_month', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
781 addConfigChangeSql('last_week', 'last_week', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
783 // Update notes (these will be set as task text!)
784 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
787 case '0.7.7': // SQL queries for v0.7.7
788 addMemberMenuSql('earn', NULL, 'Verdienen', 2);
789 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn',`sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
791 // Update notes (these will be set as task text!)
792 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
795 case '0.7.8': // SQL queries for v0.7.8
796 // Update notes (these will be set as task text!)
797 setExtensionUpdateNotes("Konfigurationseinträge mit Spaltentyp <strong>ENUM</strong> werden nun immer komplett gross geschrieben.");
800 case '0.7.9': // SQL queries for v0.7.9
801 addExtensionSQL("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_email_max_rec' WHERE `what`='config_email' LIMIT 1");
803 // Update notes (these will be set as task text!)
804 setExtensionUpdateNotes("Adminscript <strong>what-config_email.php</strong> nach <strong>what-list_email_max_rec.php</strong> umbenannt.");
807 case '0.8.0': // SQL queries for v0.8.0
808 // Points account data (this table should not be dropped or else you may have to re-install a lot extensions)
809 addCreateTableSql('points_data', "
810 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
811 `subject` VARCHAR(255) NOT NULL DEFAULT '',
812 `column_name` VARCHAR(255) NOT NULL DEFAULT 'points',
813 `locked_mode` ENUM('LOCKED','UNLOCKED') NOT NULL DEFAULT 'LOCKED',
814 `payment_method` ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL',
815 `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N',
817 UNIQUE KEY (`subject`)",
818 'Points account data');
821 addAdminMenuSql('setup', 'list_point_accounts', 'Guthabenkonten...', 'Veralten Sie hier bequem Einstellungen zu den Guthabenkonten.', 5);
823 // Update notes (these will be set as task text!)
824 setExtensionUpdateNotes("Tabelle <span class=\"bad\">points_data</span> erzeugt, diese soll das {?POINTS?}-Guthaben komplett lenken.");
827 case '0.8.1': // SQL queries for v0.8.1
828 addExtensionChangeTableColumnSql('refdepths', 'level', 'level', 'TINYINT(3) UNSIGNED NULL DEFAULT NULL');
829 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_refdepths` SET `level`=NULL WHERE `level`=0 LIMIT 1');
831 // Update notes (these will be set as task text!)
832 setExtensionUpdateNotes("Level 0 ist nun auch NULL.");
835 case '0.8.2': // SQL queries for v0.8.2
836 addExtensionDropTableIndexSql('points_data', 'ext_name');
837 addExtensionChangeTableColumnSql('points_data', 'ext_name', 'subject', "VARCHAR(255) NOT NULL DEFAULT ''");
838 addExtensionAddTableColumnSql('points_data', 'notify_recipient', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
840 // Register points data
841 registerExtensionPointsData('pool_payback', 'points', 'LOCKED', 'DIRECT');
842 registerExtensionPointsData('mail_deleted', 'points', 'LOCKED', 'DIRECT');
844 // Remove deprecated configuration entry
845 addConfigDropSql('reg_points_mode');
847 // Update notes (these will be set as task text!)
848 setExtensionUpdateNotes("Es sollte der Gutschriftenbetreff und nicht der Erweiterungsname gepeichert werden, zudem brauchen wir einen Konfigurationseintrag nicht mehr.");
851 case '0.8.3': // SQL queries for v0.8.3
852 addConfigAddSql('display_home_in_index', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
854 // Update notes (these will be set as task text!)
855 setExtensionUpdateNotes("Es kann nun die "Home"-Seite in <strong>index.php</strong> angezeigt werden, anstelle der Weiterleitung.");
858 case '0.8.4': // SQL queries for v0.8.4
859 addCreateTableSql('history', "
860 `history_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
861 `history_subject` VARCHAR(255) NOT NULL DEFAULT 'GENERIC',
862 `history_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
863 `history_value` VARCHAR(255) NOT NULL DEFAULT '',
864 `history_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
865 `history_last_used` TIMESTAMP NULL DEFAULT NULL,
866 PRIMARY KEY (`history_id`),
867 INDEX `userid` (`history_userid`),
868 INDEX (`history_last_used` DESC)",
869 'History of used data');
872 registerFilter(__FILE__, __LINE__, 'add_history_entry', 'ADD_HISTORY_ENTRY', FALSE, TRUE, isExtensionDryRun());
874 // Update notes (these will be set as task text!)
875 setExtensionUpdateNotes("Allgemeine Historie-Tabelle hinzugefügt.");
878 case '0.8.5': // SQL queries for v0.8.5
879 // Old-lost configuration entry
880 addConfigDropSql('ext_autopurge');
882 // Update notes (these will be set as task text!)
883 setExtensionUpdateNotes("Uralten Konfigurationseintrag entfernt.");
886 case '0.8.6': // SQL queries for v0.8.6
887 addExtensionChangeTableColumnSql('points_data', 'payment_method', 'payment_method', "ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL'");
888 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_points_data` SET `payment_method`='REFERRAL' WHERE `payment_method` != 'DIRECT'");
890 // Update notes (these will be set as task text!)
891 setExtensionUpdateNotes("Referral/REFERRAL soll es überall heissen (ist ein Typo nur mit einem R zu schreiben).");
894 case '0.8.7': // SQL queries for v0.8.7
895 addConfigAddSql('admin_menu_javascript', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
897 // Update notes (these will be set as task text!)
898 setExtensionUpdateNotes("Es kann ausgewählt werden, ob das herkömliche JavaScrit-lose Menü oder mit JavaScript aktiv sein soll. Das herkömliche ist erstmal Standardeinstellung, bis das JavaScript-Menü funktioniert.");
901 case '0.8.8': // SQL queries for v0.8.8
902 addExtensionDropTableIndexSql('points_data', 'subject');
903 addExtensionAddTableUniqueSql('points_data', 'subject', '(`subject`)');
905 // Update notes (these will be set as task text!)
906 setExtensionUpdateNotes("Der Wert in der Spalte <strong>subject</strong> sollte nur einmal vorkommen, damit eventuell nichts mehrfach durchfl&auuml;ft.");
909 case '0.8.9': // SQL queries for v0.8.9
910 addExtensionAddTableColumnSql('points_data', 'account_provider', "ENUM('EXTENSION', 'CUSTOM') NOT NULL DEFAULT 'EXTENSION'");
911 addConfigAddSql('points_remove_account', "VARCHAR(255) NOT NULL DEFAULT 'points'");
913 // Update notes (these will be set as task text!)
914 setExtensionUpdateNotes(""Provider" hinzugefügt, welcher nur <strong>Erweiterung</strong> oder <strong>Selbstdefiniert sein kann. Es können dann auch nur selbstdefinierte gelöscht oder editiert werden, Erweiterungen können auch nur "einige" Einträge löschen.");
917 case '0.9.0': // SQL queries for v0.9.0
919 registerFilter(__FILE__, __LINE__, 'init', 'GENERATE_FILE_SECRET_HASH', FALSE, TRUE, isExtensionDryRun());
921 // Register points data
922 registerExtensionPointsData('admin_add_single', 'points', 'LOCKED', 'DIRECT');
923 registerExtensionPointsData('admin_add_single_ref', 'points', 'LOCKED', 'DIRECT');
924 registerExtensionPointsData('admin_add_all', 'points', 'LOCKED', 'DIRECT');
925 registerExtensionPointsData('admin_add_all_ref', 'points', 'LOCKED', 'DIRECT');
927 // Update notes (these will be set as task text!)
928 setExtensionUpdateNotes("Filter zum Initialisieren von ext-sql_patches registriert und Einträge in <strong>{?_MYSQL_PREFIX?}_points_data</strong> hinzugefügt.");
931 case '0.9.1': // SQL queries for v0.9.1
933 addAdminMenuSql('misc', 'list_server_name', 'Verkehrte Domains auflisten', 'Listet alle als verkehrt erkannten Domains auf.', 4);
936 addCreateTableSql('server_name_log', "
937 `server_name_id` BIGINT (20) NOT NULL AUTO_INCREMENT,
938 `server_name` VARCHAR (255) NOT NULL DEFAULT 'invalid',
939 `server_name_remote_addr` VARCHAR (15) NOT NULL DEFAULT '0.0.0.0',
940 `server_name_ua` TINYTEXT NULL DEFAULT NULL,
941 `server_name_referrer` TINYTEXT NULL DEFAULT NULL,
942 `server_name_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
943 `server_name_counter` BIGINT (20) NOT NULL DEFAULT 1,
944 PRIMARY KEY (`server_name_id`)
945 ", 'Logging of wrong SERVER_NAME');
947 // Update notes (these will be set as task text!)
948 setExtensionUpdateNotes("Loggen von falschen <strong>SERVER_NAME</strong> Einträgen hinzugefügt.");
951 case '0.9.2': // SQL queries for v0.9.2
952 addExtensionAddTableColumnSql('server_name_log', 'server_name_remote_addr', "VARCHAR (15) NOT NULL DEFAULT '0.0.0.0'");
953 addExtensionAddTableColumnSql('server_name_log', 'server_name_counter', 'BIGINT (20) NOT NULL DEFAULT 0');
954 addExtensionAddTableColumnSql('server_name_log', 'server_name_ua', 'TINYTEXT NULL DEFAULT NULL');
955 addExtensionAddTableColumnSql('server_name_log', 'server_name_referrer', 'TINYTEXT NULL DEFAULT NULL');
957 // Update notes (these will be set as task text!)
958 setExtensionUpdateNotes("Sorry, hatte noch IP-Nummer, User-Agent, aufrufende Seite und Zähler vergessen.");
961 case '0.9.3': // SQL queries for v0.9.3
962 addConfigAddSql('ap_server_name', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
963 addConfigAddSql('ap_server_name_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
966 registerFilter(__FILE__, __LINE__, 'extra_autopurge', 'SERVER_NAME_EXTRA_AUTOPURGE', FALSE, TRUE, isExtensionDryRun());
968 // Update notes (these will be set as task text!)
969 setExtensionUpdateNotes("Bereinigung von verkehrten <strong>SERVER_NAME</strong> Einträgen hinzugefügt.");
972 case '0.9.4': // SQL queries for v0.9.4
973 addAdminMenuSql('setup', 'list_referral_levels', 'Referral-Ebenen', 'Erlaubt das Auflisten, hinzufügen, ändern und löschen von Referral-Ebenen. Seien Sie beim Löschen vorsichtig, da deren Id-Nummern zum Verknüpfen verwendet werden. Sollten Sie also eine Ebene löschen, in der Mitglieder {OPEN_CONFIG}POINTS{CLOSE_CONFIG} haben sollten, sind diese verloren.', 15);
974 addExtensionChangeTableColumnSql('refdepths', 'percents', 'percents', 'FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
976 // Update notes (these will be set as task text!)
977 setExtensionUpdateNotes("Auflisten (usw.) von Referral-Ebenen ausgelagert in eigenen Menüpunkt. Referral-Prozente dürfen nun auch 5 Stellen hinter dem Komma haben.");
980 case '0.9.5': // SQL queries for v0.9.5
981 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_cats' WHERE `action`='setup' AND `what`='config_cats' LIMIT 1");
983 // Update notes (these will be set as task text!)
984 setExtensionUpdateNotes("Menüpunkt umbenannt, da "config" nur für die Konfigurationstabelle <strong>{?_MYSQL_PREFIX?}_config</strong> ist.");
987 case '0.9.6': // SQL queries for v0.9.6
989 registerFilter(__FILE__, __LINE__, 'determine_menu_mode', 'DETERMINE_MENU_MODE_GENERIC', FALSE, TRUE, isExtensionDryRun());
991 // Update notes (these will be set as task text!)
992 setExtensionUpdateNotes("Filter hinzugefügt, der den Menümodus für weitere von dieser Erweiterung benutzten Module erkennen soll.");
997 case 'modify': // When the extension got modified
1000 case 'test': // For testing purposes
1003 case 'init': // Do stuff when extension is initialized
1006 default: // Unknown extension mode
1007 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));