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());
112 unregisterFilter(__FILE__, __LINE__, 'determine_menu_mode', 'DETERMINE_MENU_MODE_GENERIC', TRUE, isExtensionDryRun());
115 case 'activate': // Do stuff when admin activates this extension
116 // SQL commands to run
120 case 'deactivate': // Do stuff when admin deactivates this extension
121 // SQL commands to run
125 case 'update': // Update an extension
126 switch (getCurrentExtensionVersion()) {
127 case '0.0.1': // SQL queries for v0.0.1
128 addAdminMenuSql('setup', 'config_extensions', 'Erweitungsmanagement', 'Alle Einstellungen am Erweiterungsmanagement.', 10);
130 // Update notes (these will be set as task text!)
131 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.");
134 case '0.0.2': // SQL queries for v0.0.2
135 addConfigChangeSql('auto_purge', 'auto_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay()*14));
137 // Update notes (these will be set as task text!)
138 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.)");
141 case '0.0.3': // SQL queries for v0.0.3
142 addConfigAddSql('points_word', "VARCHAR(255) NOT NULL DEFAULT '{OPEN_TEMPLATE}DEFAULT_POINTS{CLOSE_TEMPLATE}'");
144 // Update notes (these will be set as task text!)
145 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.");
148 case '0.0.4': // SQL queries for v0.0.4
149 addConfigAddSql('mails_page', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
151 // Update notes (these will be set as task text!)
152 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugefügt.");
155 case '0.0.5': // SQL queries for v0.0.5
156 addConfigAddSql('index_home', "VARCHAR(255) NOT NULL DEFAULT 'welcome'");
157 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);
159 // Update notes (these will be set as task text!)
160 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
163 case '0.0.6': // SQL queries for v0.0.6
164 addExtensionAddTableColumnSql('extensions', 'ext_has_css', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
166 // Update notes (these will be set as task text!)
167 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.");
170 case '0.0.7': // SQL queries for v0.0.7
171 addConfigAddSql('verbose_sql', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
173 // Update notes (these will be set as task text!)
174 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
177 case '0.0.8': // SQL queries for v0.0.8
178 addConfigAddSql('menu_blur_spacer', "VARCHAR(255) NOT NULL DEFAULT ' <strong><big>·</big></strong> '");
180 // Update notes (these will be set as task text!)
181 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
184 case '0.0.9': // SQL queries for v0.0.9
185 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);
187 // Update notes (these will be set as task text!)
188 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
191 case '0.1.0': // SQL queries for v0.1.0
192 // Update notes (these will be set as task text!)
193 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?");
196 case '0.1.1': // SQL queries for v0.1.1
197 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");
198 addConfigAddSql('index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
199 addConfigAddSql('index_cookie', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 365));
201 // Update notes (these will be set as task text!)
202 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.");
205 case '0.1.2': // SQL queries for v0.1.2
206 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);
207 addConfigAddSql('def_refid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
209 // Update notes (these will be set as task text!)
210 setExtensionUpdateNotes("Standard Referral-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
213 case '0.1.3': // SQL queries for v0.1.3
214 addConfigAddSql('refid_target', "ENUM('register','index') NOT NULL DEFAULT 'register'");
216 // Update notes (these will be set as task text!)
217 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
220 case '0.1.4': // SQL queries for v0.1.4
221 // Update notes (these will be set as task text!)
222 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
225 case '0.1.5': // SQL queries for v0.1.5
226 addExtensionDropTableColumnSql('extensions', 'ext_has_admin');
228 // Update notes (these will be set as task text!)
229 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
232 case '0.1.6': // SQL queries for v0.1.6
233 addConfigAddSql('enable_title_deco', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
234 addConfigAddSql('title_left', "VARCHAR(10) NOT NULL DEFAULT '[--'");
235 addConfigAddSql('title_middle', "VARCHAR(10) NOT NULL DEFAULT '-'");
236 addConfigAddSql('title_right', "VARCHAR(10) NOT NULL DEFAULT '--]'");
237 addConfigAddSql('enable_mod_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
238 addConfigAddSql('enable_what_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
239 addAdminMenuSql('setup','config_title','Seitentitel ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
241 // Update notes (these will be set as task text!)
242 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.");
245 case '0.1.7': // SQL queries for v0.1.7
246 // Update notes (these will be set as task text!)
247 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
250 case '0.1.8': // SQL queries for v0.1.8
251 // Update notes (these will be set as task text!)
252 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
255 case '0.1.9': // SQL queries for v0.1.9
256 // Update notes (these will be set as task text!)
257 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
260 case '0.2.0': // SQL queries for v0.2.0
261 addExtensionChangeTableColumnSql('jackpot', 'points', 'points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
263 addExtensionChangeTableColumnSql('payments', 'payment', 'payment', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
264 addExtensionChangeTableColumnSql('payments', 'price', 'price', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
266 // Update notes (these will be set as task text!)
267 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
270 case '0.2.1': // SQL queries for v0.2.1
271 addConfigAddSql('css_php', "ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
273 // Update notes (these will be set as task text!)
274 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
277 case '0.2.2': // SQL queries for v0.2.2
278 // Update notes (these will be set as task text!)
279 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
282 case '0.2.3': // SQL queries for v0.2.3
283 addConfigAddSql('guest_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
284 addConfigAddSql('member_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
285 addConfigAddSql('youre_here', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
287 // Update notes (these will be set as task text!)
288 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
291 case '0.2.4': // SQL queries for v0.2.4
292 // PNG image is the default
295 // Is the JPEG file found and required PHP function there?
296 if ((!isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.png')) || (!function_exists('imagecreatefrompng'))) {
297 // Switch to JPEG format because PNG is not available
300 addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
302 // Update notes (these will be set as task text!)
303 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
306 case '0.2.5': // SQL queries for v0.2.5
307 // Update notes (these will be set as task text!)
308 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
311 case '0.2.6': // SQL queries for v0.2.6
312 // Update notes (these will be set as task text!)
313 setExtensionUpdateNotes("Verschoben nach <strong>ext-user</strong>.");
316 case '0.2.7': // SQL queries for v0.2.7
317 addConfigAddSql('stats_limit', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
318 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
320 // Update notes (these will be set as task text!)
321 setExtensionUpdateNotes("<ol>
322 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
323 <li>Mitgliederstatistik mit Seitennavigation.</li>
327 case '0.2.8': // SQL queries for v0.2.8
328 // Update notes (these will be set as task text!)
329 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
332 case '0.2.9': // SQL queries for v0.2.9
333 addConfigAddSql('mt_word', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
334 addConfigAddSql('mt_word2', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
335 addConfigAddSql('mt_word3', "VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
337 // Update notes (these will be set as task text!)
338 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
341 case '0.3.0': // SQL queries for v0.3.0
342 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referral-Ebenen' WHERE `what`='config_points' LIMIT 1");
343 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailvergütungen...' WHERE `what`='payments' LIMIT 1");
345 // Update notes (these will be set as task text!)
346 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
349 case '0.3.1': // SQL queries for v0.3.1
350 addExtensionAddTableUniqueSql('extensions', 'ext_name', '(`ext_name`)');
351 addExtensionAddTableUniqueSql('admins', 'login', '(`login`)');
352 addExtensionAddTableIndexSql('refbanner', 'visible', '(`visible`)');
353 addExtensionAddTableUniqueSql('refdepths', 'level', '(`level`)');
354 addExtensionAddTableIndexSql('refsystem', 'level', '(`level`)');
355 addExtensionAddTableIndexSql('pool', 'data_type', '(`data_type`)');
356 addExtensionAddTableUniqueSql('mod_reg', 'module', '(`module`)');
357 addExtensionAddTableIndexSql('admin_menu', 'action', '(`action`)');
358 addExtensionAddTableIndexSql('admin_menu', 'what', '(`what`)');
359 addExtensionAddTableIndexSql('extensions', 'ext_active', '(`ext_active`)');
360 addExtensionAddTableIndexSql('guest_menu', 'action', '(`action`)');
361 addExtensionAddTableIndexSql('guest_menu', 'what', '(`what`)');
362 addExtensionAddTableIndexSql('guest_menu', 'sort', '(`sort`)');
363 addExtensionAddTableIndexSql('guest_menu', 'visible', '(`visible`)');
364 addExtensionAddTableIndexSql('guest_menu', 'locked', '(`locked`)');
365 addExtensionAddTableIndexSql('member_menu', 'what', '(`what`)');
366 addExtensionAddTableIndexSql('member_menu', 'sort', '(`sort`)');
367 addExtensionAddTableIndexSql('member_menu', 'visible', '(`visible`)');
368 addExtensionAddTableIndexSql('member_menu', 'locked', '(`locked`)');
369 addExtensionAddTableIndexSql('cats', 'visible', '(`visible`)');
370 addExtensionAddTableIndexSql('cats', 'sort', '(`sort`)');
372 // Update notes (these will be set as task text!)
373 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE) und normale Schlüssel (INDEX) gesetzt.");
376 case '0.3.2': // SQL queries for v0.3.2
377 // Connection table between the menu system and the "logical area system"
378 addDropTableSql('admin_menu_las');
379 addCreateTableSql('admin_menu_las', "
380 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
381 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
382 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
383 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
388 'Menu system -> LAS');
390 // All "logical areas" together
391 addDropTableSql('admin_menu_las_data');
392 addCreateTableSql('admin_menu_las_data', "
393 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
394 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
395 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
396 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
397 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
399 UNIQUE INDEX (`la_id`),
402 'LAS position and title data');
404 // Which menu do you like?
405 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
408 addAdminMenuSql('setup', 'config_admin', 'Adminmenü', 'Diverse Einstellungen am Adminmenü vornehmen.', 9);
410 // Update notes (these will be set as task text!)
411 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.");
414 case '0.3.3': // SQL queries for v0.3.3
415 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
416 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
418 // The statistics table
419 addDropTableSql('admin_las_stats');
420 addCreateTableSql('admin_las_stats', "
421 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
422 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
423 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
424 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
429 // Update notes (these will be set as task text!)
430 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.");
433 case '0.3.4': // SQL queries for v0.3.4
434 // Update notes (these will be set as task text!)
435 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
438 case '0.3.5': // SQL queries for v0.3.5
439 // List accounts with no referral
440 addMemberMenuSql('stats', NULL, 'Statistiken', 4);
441 addMemberMenuSql('stats', 'stats2', 'Framekiller-Mails', 2);
442 addMemberMenuSql('extras', NULL, 'Extras', 5);
443 addMemberMenuSql('rals', NULL, 'Rallyes', 6);
444 addMemberMenuSql('account', NULL, 'Ihr Account', 7);
445 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats',`sort`=1,`title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
446 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=3 WHERE `what`='reflinks' LIMIT 1");
448 // Update notes (these will be set as task text!)
449 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
452 case '0.3.6': // SQL queries for v0.3.6
453 addConfigAddSql('salt_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
454 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
455 addExtensionChangeTableColumnSql('admins', 'password', 'password', "VARCHAR(255) NOT NULL DEFAULT ''");
456 addConfigAddSql('rand_no', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
457 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
458 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
459 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
460 addExtensionAddTableColumnSql('mod_reg', 'has_menu', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
461 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
463 // Update notes (these will be set as task text!)
464 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
467 case '0.3.7': // SQL queries for v0.3.7
468 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
471 case '0.3.8': // SQL queries for v0.3.8
472 addExtensionChangeTableColumnSql('admin_menu', 'descr', 'descr', 'MEDIUMTEXT NULL');
473 addExtensionChangeTableColumnSql('pool', 'text', 'text', 'LONGTEXT NOT NULL');
475 // Update notes (these will be set as task text!)
476 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
479 case '0.3.9': // SQL queries for v0.3.9
480 // Update notes (these will be set as task text!)
481 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
484 case '0.4.0': // SQL queries for v0.4.0
485 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
487 // Update notes (these will be set as task text!)
488 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
491 case '0.4.1': // SQL queries for v0.4.1
492 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
494 // Update notes (these will be set as task text!)
495 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
498 case '0.4.2': // SQL queries for v0.4.2
499 // Update notes (these will be set as task text!)
500 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
503 case '0.4.3': // SQL queries for v0.4.3
504 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
505 addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
506 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
507 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
508 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);
510 // Update notes (these will be set as task text!)
511 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
514 case '0.4.4': // SQL queries for v0.4.4
515 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
516 addExtensionChangeTableColumnSql('guest_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
517 addExtensionChangeTableColumnSql('member_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
518 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
519 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
520 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
522 // Make this depending on ext-menu
523 addExtensionDependency('menu');
525 // Update notes (these will be set as task text!)
526 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
529 case '0.4.5': // SQL queries for v0.4.5
530 addConfigAddSql('last_month', 'CHAR(2) NOT NULL DEFAULT 00');
531 addConfigAddSql('last_week', 'CHAR(2) NOT NULL DEFAULT 00');
533 // Update notes (these will be set as task text!)
534 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
537 case '0.4.6': // SQL queries for v0.4.6
538 // Update notes (these will be set as task text!)
539 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
542 case '0.4.7': // SQL queries for v0.4.7
543 // Update notes (these will be set as task text!)
544 setExtensionUpdateNotes("Veraltetes Update.");
547 case '0.4.8': // SQL queries for v0.4.8
548 // Update notes (these will be set as task text!)
549 setExtensionUpdateNotes("Update nach <strong>ext-task</strong> verschoben.");
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 addExtensionDropTableIndexSql('refsystem', 'level');
559 addExtensionDropTableIndexSql('refsystem', 'userid');
560 addExtensionAddTableIndexSql('refsystem', 'userid_level', '(`userid`, `level`)');
562 // Update notes (these will be set as task text!)
563 setExtensionUpdateNotes("Referral-System unterstützt nun detailierte Referral-Übersicht und vieles mehr.");
566 case '0.5.1': // SQL queries for v0.5.1
567 addExtensionDropTableColumnSql('member_menu', '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 addExtensionChangeTableColumnSql('refdepths', '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 // Update notes (these will be set as task text!)
592 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
595 case '0.5.5': // SQL queries for v0.5.5
596 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
598 // Update notes (these will be set as task text!)
599 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
602 case '0.5.6': // SQL queries for v0.5.6
603 // Update notes (these will be set as task text!)
604 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
607 case '0.5.7': // SQL queries for v0.5.7
608 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
610 // Update notes (these will be set as task text!)
611 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
614 case '0.5.8': // SQL queries for v0.5.8
615 addExtensionDropTableColumnSql('extensions', 'ext_lang_file');
617 // Update notes (these will be set as task text!)
618 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
621 case '0.5.9': // SQL queries for v0.5.9
622 // Table 'filters' is vital because many functionality depends on it, so don't remove it
623 addCreateTableSql('filters', "
624 `filter_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
625 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
626 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
627 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
628 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
629 PRIMARY KEY (`filter_id`),
630 UNIQUE INDEX `name_function` (`filter_name`, `filter_function`)",
634 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
636 // Update notes (these will be set as task text!)
637 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
640 case '0.6.0': // SQL queries for v0.6.0
641 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
643 // Update notes (these will be set as task text!)
644 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
647 case '0.6.1': // SQL queries for v0.6.1
648 // Update notes (these will be set as task text!)
649 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
652 case '0.6.2': // SQL queries for v0.6.2
653 // Depends on refback extension
654 addExtensionDependency('user');
656 // Update notes (these will be set as task text!)
657 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
660 case '0.6.3': // SQL queries for v0.6.3
661 // Update notes (these will be set as task text!)
662 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.");
664 // Add special fix include to fix filters
665 addIncludeToPool('extension', 'inc/fix_filters.php');
668 case '0.6.4': // SQL queries for v0.6.4
670 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
671 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
672 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
673 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
675 // Update notes (these will be set as task text!)
676 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
679 case '0.6.5': // SQL queries for v0.6.5
680 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
682 // Update notes (these will be set as task text!)
683 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
686 case '0.6.6': // SQL queries for v0.6.6
687 addAdminMenuSql('setup', 'config_secure', 'Sicherheitseinstellungen', 'Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.', 9);
688 addAdminMenuSql('setup', 'config_points', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}', 'Stellen Sie hier die Willkommensgutschrift, Referral-Gutschrift (einmalige) usw. ein.', 10);
689 addAdminMenuSql('email', 'email_archiv', 'E-Mail Archiv', 'Sehen Sie sich hier bereits gesendete Mails an.', 6);
691 // Update notes (these will be set as task text!)
692 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
695 case '0.6.7': // SQL queries for v0.6.7
696 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
698 // Update notes (these will be set as task text!)
699 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
702 case '0.6.8': // SQL queries for v0.6.8
703 addExtensionChangeTableColumnSql('admin_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
704 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
705 addExtensionChangeTableColumnSql('guest_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
706 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
707 addExtensionChangeTableColumnSql('member_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
708 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
710 // Update notes (these will be set as task text!)
711 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
714 case '0.6.9': // SQL queries for 0.6.9
716 registerFilter(__FILE__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', FALSE, TRUE, isExtensionDryRun());
718 // Update notes (these will be set as task text!)
719 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
722 case '0.7.0': // SQL queries for 0.7.0
724 addDropTableSql('dns_cache');
725 addCreateTableSql('dns_cache', "
726 `hostname` VARCHAR(255) NOT NULL,
727 `ip` VARCHAR(15) NOT NULL,
728 `added` DATETIME NOT NULL,
729 PRIMARY KEY (`hostname`),
731 'Cache for DNS requests');
734 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
737 registerFilter(__FILE__, __LINE__, 'reset', 'CLEANUP_DNS_CACHE', FALSE, TRUE, isExtensionDryRun());
739 // Update notes (these will be set as task text!)
740 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
743 case '0.7.1': // SQL queries for v0.7.1
744 // This update just depends on ext-timezone to make integration of an essential extension much easier
745 addExtensionDependency('timezone');
747 // Update notes (these will be set as task text!)
748 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
751 case '0.7.2': // SQL queries for v0.7.2
752 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
754 // Update notes (these will be set as task text!)
755 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
758 case '0.7.3': // SQL queries for v0.7.3
759 addExtensionChangeTableColumnSql('filters', 'filter_name', 'filter_name', "VARCHAR(50) NOT NULL DEFAULT ''");
760 addExtensionChangeTableColumnSql('filters', 'filter_function', 'filter_function', "VARCHAR(100) NOT NULL DEFAULT ''");
762 // Update notes (these will be set as task text!)
763 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
766 case '0.7.4': // SQL queries for v0.7.4
767 addExtensionAddTableColumnSql('pool', 'mails_sent', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
769 // Update notes (these will be set as task text!)
770 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
773 case '0.7.5': // SQL queries for v0.7.5
774 addConfigAddSql('last_hour', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
776 // Update notes (these will be set as task text!)
777 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
780 case '0.7.6': // SQL queries for v0.7.6
781 addConfigChangeSql('last_month', 'last_month', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
782 addConfigChangeSql('last_week', 'last_week', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
784 // Update notes (these will be set as task text!)
785 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
788 case '0.7.7': // SQL queries for v0.7.7
789 addMemberMenuSql('earn', NULL, 'Verdienen', 2);
790 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn',`sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
792 // Update notes (these will be set as task text!)
793 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
796 case '0.7.8': // SQL queries for v0.7.8
797 // Update notes (these will be set as task text!)
798 setExtensionUpdateNotes("Konfigurationseinträge mit Spaltentyp <strong>ENUM</strong> werden nun immer komplett gross geschrieben.");
801 case '0.7.9': // SQL queries for v0.7.9
802 addExtensionSQL("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_email_max_rec' WHERE `what`='config_email' LIMIT 1");
804 // Update notes (these will be set as task text!)
805 setExtensionUpdateNotes("Adminscript <strong>what-config_email.php</strong> nach <strong>what-list_email_max_rec.php</strong> umbenannt.");
808 case '0.8.0': // SQL queries for v0.8.0
809 // Points account data (this table should not be dropped or else you may have to re-install a lot extensions)
810 addCreateTableSql('points_data', "
811 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
812 `subject` VARCHAR(255) NOT NULL DEFAULT '',
813 `column_name` VARCHAR(255) NOT NULL DEFAULT 'points',
814 `locked_mode` ENUM('LOCKED','UNLOCKED') NOT NULL DEFAULT 'LOCKED',
815 `payment_method` ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL',
816 `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N',
818 UNIQUE KEY (`subject`)",
819 'Points account data');
822 addAdminMenuSql('setup', 'list_point_accounts', 'Guthabenkonten...', 'Veralten Sie hier bequem Einstellungen zu den Guthabenkonten.', 5);
824 // Update notes (these will be set as task text!)
825 setExtensionUpdateNotes("Tabelle <span class=\"bad\">points_data</span> erzeugt, diese soll das {?POINTS?}-Guthaben komplett lenken.");
828 case '0.8.1': // SQL queries for v0.8.1
829 addExtensionChangeTableColumnSql('refdepths', 'level', 'level', 'TINYINT(3) UNSIGNED NULL DEFAULT NULL');
830 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_refdepths` SET `level`=NULL WHERE `level`=0 LIMIT 1');
832 // Update notes (these will be set as task text!)
833 setExtensionUpdateNotes("Level 0 ist nun auch NULL.");
836 case '0.8.2': // SQL queries for v0.8.2
837 addExtensionDropTableIndexSql('points_data', 'ext_name');
838 addExtensionChangeTableColumnSql('points_data', 'ext_name', 'subject', "VARCHAR(255) NOT NULL DEFAULT ''");
839 addExtensionAddTableColumnSql('points_data', 'notify_recipient', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
841 // Register points data
842 registerExtensionPointsData('pool_payback', 'points', 'LOCKED', 'DIRECT');
843 registerExtensionPointsData('mail_deleted', 'points', 'LOCKED', 'DIRECT');
845 // Remove deprecated configuration entry
846 addConfigDropSql('reg_points_mode');
848 // Update notes (these will be set as task text!)
849 setExtensionUpdateNotes("Es sollte der Gutschriftenbetreff und nicht der Erweiterungsname gepeichert werden, zudem brauchen wir einen Konfigurationseintrag nicht mehr.");
852 case '0.8.3': // SQL queries for v0.8.3
853 addConfigAddSql('display_home_in_index', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
855 // Update notes (these will be set as task text!)
856 setExtensionUpdateNotes("Es kann nun die "Home"-Seite in <strong>index.php</strong> angezeigt werden, anstelle der Weiterleitung.");
859 case '0.8.4': // SQL queries for v0.8.4
860 addCreateTableSql('history', "
861 `history_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
862 `history_subject` VARCHAR(255) NOT NULL DEFAULT 'GENERIC',
863 `history_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
864 `history_value` VARCHAR(255) NOT NULL DEFAULT '',
865 `history_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
866 `history_last_used` TIMESTAMP NULL DEFAULT NULL,
867 PRIMARY KEY (`history_id`),
868 INDEX `userid` (`history_userid`),
869 INDEX (`history_last_used` DESC)",
870 'History of used data');
873 registerFilter(__FILE__, __LINE__, 'add_history_entry', 'ADD_HISTORY_ENTRY', FALSE, TRUE, isExtensionDryRun());
875 // Update notes (these will be set as task text!)
876 setExtensionUpdateNotes("Allgemeine Historie-Tabelle hinzugefügt.");
879 case '0.8.5': // SQL queries for v0.8.5
880 // Old-lost configuration entry
881 addConfigDropSql('ext_autopurge');
883 // Update notes (these will be set as task text!)
884 setExtensionUpdateNotes("Uralten Konfigurationseintrag entfernt.");
887 case '0.8.6': // SQL queries for v0.8.6
888 addExtensionChangeTableColumnSql('points_data', 'payment_method', 'payment_method', "ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL'");
889 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_points_data` SET `payment_method`='REFERRAL' WHERE `payment_method` != 'DIRECT'");
891 // Update notes (these will be set as task text!)
892 setExtensionUpdateNotes("Referral/REFERRAL soll es überall heissen (ist ein Typo nur mit einem R zu schreiben).");
895 case '0.8.7': // SQL queries for v0.8.7
896 addConfigAddSql('admin_menu_javascript', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
898 // Update notes (these will be set as task text!)
899 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.");
902 case '0.8.8': // SQL queries for v0.8.8
903 addExtensionDropTableIndexSql('points_data', 'subject');
904 addExtensionAddTableUniqueSql('points_data', 'subject', '(`subject`)');
906 // Update notes (these will be set as task text!)
907 setExtensionUpdateNotes("Der Wert in der Spalte <strong>subject</strong> sollte nur einmal vorkommen, damit eventuell nichts mehrfach durchfl&auuml;ft.");
910 case '0.8.9': // SQL queries for v0.8.9
911 addExtensionAddTableColumnSql('points_data', 'account_provider', "ENUM('EXTENSION', 'CUSTOM') NOT NULL DEFAULT 'EXTENSION'");
912 addConfigAddSql('points_remove_account', "VARCHAR(255) NOT NULL DEFAULT 'points'");
914 // Update notes (these will be set as task text!)
915 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.");
918 case '0.9.0': // SQL queries for v0.9.0
920 registerFilter(__FILE__, __LINE__, 'init', 'GENERATE_FILE_SECRET_HASH', FALSE, TRUE, isExtensionDryRun());
922 // Register points data
923 registerExtensionPointsData('admin_add_single', 'points', 'LOCKED', 'DIRECT');
924 registerExtensionPointsData('admin_add_single_ref', 'points', 'LOCKED', 'DIRECT');
925 registerExtensionPointsData('admin_add_all', 'points', 'LOCKED', 'DIRECT');
926 registerExtensionPointsData('admin_add_all_ref', 'points', 'LOCKED', 'DIRECT');
928 // Update notes (these will be set as task text!)
929 setExtensionUpdateNotes("Filter zum Initialisieren von ext-sql_patches registriert und Einträge in <strong>{?_MYSQL_PREFIX?}_points_data</strong> hinzugefügt.");
932 case '0.9.1': // SQL queries for v0.9.1
934 addAdminMenuSql('misc', 'list_server_name', 'Verkehrte Domains auflisten', 'Listet alle als verkehrt erkannten Domains auf.', 4);
937 addCreateTableSql('server_name_log', "
938 `server_name_id` BIGINT (20) NOT NULL AUTO_INCREMENT,
939 `server_name` VARCHAR (255) NOT NULL DEFAULT 'invalid',
940 `server_name_remote_addr` VARCHAR (15) NOT NULL DEFAULT '0.0.0.0',
941 `server_name_ua` TINYTEXT NULL DEFAULT NULL,
942 `server_name_referrer` TINYTEXT NULL DEFAULT NULL,
943 `server_name_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
944 `server_name_counter` BIGINT (20) NOT NULL DEFAULT 1,
945 PRIMARY KEY (`server_name_id`)
946 ", 'Logging of wrong SERVER_NAME');
948 // Update notes (these will be set as task text!)
949 setExtensionUpdateNotes("Loggen von falschen <strong>SERVER_NAME</strong> Einträgen hinzugefügt.");
952 case '0.9.2': // SQL queries for v0.9.2
953 addExtensionAddTableColumnSql('server_name_log', 'server_name_remote_addr', "VARCHAR (15) NOT NULL DEFAULT '0.0.0.0'");
954 addExtensionAddTableColumnSql('server_name_log', 'server_name_counter', 'BIGINT (20) NOT NULL DEFAULT 0');
955 addExtensionAddTableColumnSql('server_name_log', 'server_name_ua', 'TINYTEXT NULL DEFAULT NULL');
956 addExtensionAddTableColumnSql('server_name_log', 'server_name_referrer', 'TINYTEXT NULL DEFAULT NULL');
958 // Update notes (these will be set as task text!)
959 setExtensionUpdateNotes("Sorry, hatte noch IP-Nummer, User-Agent, aufrufende Seite und Zähler vergessen.");
962 case '0.9.3': // SQL queries for v0.9.3
963 addConfigAddSql('ap_server_name', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
964 addConfigAddSql('ap_server_name_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
967 registerFilter(__FILE__, __LINE__, 'extra_autopurge', 'SERVER_NAME_EXTRA_AUTOPURGE', FALSE, TRUE, isExtensionDryRun());
969 // Update notes (these will be set as task text!)
970 setExtensionUpdateNotes("Bereinigung von verkehrten <strong>SERVER_NAME</strong> Einträgen hinzugefügt.");
973 case '0.9.4': // SQL queries for v0.9.4
974 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);
975 addExtensionChangeTableColumnSql('refdepths', 'percents', 'percents', 'FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
977 // Update notes (these will be set as task text!)
978 setExtensionUpdateNotes("Auflisten (usw.) von Referral-Ebenen ausgelagert in eigenen Menüpunkt. Referral-Prozente dürfen nun auch 5 Stellen hinter dem Komma haben.");
981 case '0.9.5': // SQL queries for v0.9.5
982 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_cats' WHERE `action`='setup' AND `what`='config_cats' LIMIT 1");
984 // Update notes (these will be set as task text!)
985 setExtensionUpdateNotes("Menüpunkt umbenannt, da "config" nur für die Konfigurationstabelle <strong>{?_MYSQL_PREFIX?}_config</strong> ist.");
988 case '0.9.6': // SQL queries for v0.9.6
990 registerFilter(__FILE__, __LINE__, 'determine_menu_mode', 'DETERMINE_MENU_MODE_GENERIC', FALSE, TRUE, isExtensionDryRun());
992 // Update notes (these will be set as task text!)
993 setExtensionUpdateNotes("Filter hinzugefügt, der den Menümodus für weitere von dieser Erweiterung benutzten Module erkennen soll.");
998 case 'modify': // When the extension got modified
1001 case 'test': // For testing purposes
1004 case 'init': // Do stuff when extension is initialized
1007 default: // Unknown extension mode
1008 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));