2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 01/14/2013 *
4 * =================== Last change: 01/14/2013 *
6 * -------------------------------------------------------------------- *
7 * File : mode-update.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Steps for updates of ext-sql_patches *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Schritte fuer Updates von ext-sql_patches *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009 - 2013 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')) {
43 // @TODO Remove double tabs from all lines
44 switch (getCurrentExtensionVersion()) {
45 case '0.0.1': // SQL queries for v0.0.1
46 addAdminMenuSql('setup', 'config_extensions', 'Erweitungsmanagement', 'Alle Einstellungen am Erweiterungsmanagement.', 10);
48 // Update notes (these will be set as task text!)
49 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.");
52 case '0.0.2': // SQL queries for v0.0.2
53 // Update notes (these will be set as task text!)
54 setExtensionUpdateNotes("Nicht mehr verwendetes Update, da nach <strong>ext-autopurge</strong> verschoben.");
57 case '0.0.3': // SQL queries for v0.0.3
58 addConfigAddSql('points_word', "VARCHAR(255) NOT NULL DEFAULT '{OPEN_LANGUAGE}DEFAULT_POINTS{CLOSE_LANGUAGE}'");
60 // Update notes (these will be set as task text!)
61 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.");
64 case '0.0.4': // SQL queries for v0.0.4
65 addConfigAddSql('mails_page', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
67 // Update notes (these will be set as task text!)
68 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugefügt.");
71 case '0.0.5': // SQL queries for v0.0.5
72 addConfigAddSql('index_home', "VARCHAR(255) NOT NULL DEFAULT 'welcome'");
73 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);
75 // Update notes (these will be set as task text!)
76 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
79 case '0.0.6': // SQL queries for v0.0.6
80 addExtensionAddTableColumnSql('extensions', 'ext_has_css', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
82 // Update notes (these will be set as task text!)
83 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.");
86 case '0.0.7': // SQL queries for v0.0.7
87 addConfigAddSql('verbose_sql', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
89 // Update notes (these will be set as task text!)
90 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
93 case '0.0.8': // SQL queries for v0.0.8
94 addConfigAddSql('menu_blur_spacer', "VARCHAR(255) NOT NULL DEFAULT ' <strong><big>·</big></strong> '");
96 // Update notes (these will be set as task text!)
97 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
100 case '0.0.9': // SQL queries for v0.0.9
101 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);
103 // Update notes (these will be set as task text!)
104 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
107 case '0.1.0': // SQL queries for v0.1.0
108 // Update notes (these will be set as task text!)
109 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?");
112 case '0.1.1': // SQL queries for v0.1.1
113 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");
114 addConfigAddSql('index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
115 addConfigAddSql('index_cookie', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 365));
117 // Update notes (these will be set as task text!)
118 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.");
121 case '0.1.2': // SQL queries for v0.1.2
122 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);
123 addConfigAddSql('def_refid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
125 // Update notes (these will be set as task text!)
126 setExtensionUpdateNotes("Standard Referral-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
129 case '0.1.3': // SQL queries for v0.1.3
130 addConfigAddSql('refid_target', "ENUM('register','index') NOT NULL DEFAULT 'register'");
132 // Update notes (these will be set as task text!)
133 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
136 case '0.1.4': // SQL queries for v0.1.4
137 // Update notes (these will be set as task text!)
138 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
141 case '0.1.5': // SQL queries for v0.1.5
142 addExtensionDropTableColumnSql('extensions', 'ext_has_admin');
144 // Update notes (these will be set as task text!)
145 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
148 case '0.1.6': // SQL queries for v0.1.6
149 addConfigAddSql('enable_title_deco', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
150 addConfigAddSql('title_left', "VARCHAR(10) NOT NULL DEFAULT '[--'");
151 addConfigAddSql('title_middle', "VARCHAR(10) NOT NULL DEFAULT '-'");
152 addConfigAddSql('title_right', "VARCHAR(10) NOT NULL DEFAULT '--]'");
153 addConfigAddSql('enable_mod_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
154 addConfigAddSql('enable_what_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
155 addAdminMenuSql('setup','config_title','Seitentitel ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
157 // Update notes (these will be set as task text!)
158 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.");
161 case '0.1.7': // SQL queries for v0.1.7
162 // Update notes (these will be set as task text!)
163 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
166 case '0.1.8': // SQL queries for v0.1.8
167 // Update notes (these will be set as task text!)
168 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
171 case '0.1.9': // SQL queries for v0.1.9
172 // Update notes (these will be set as task text!)
173 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
176 case '0.2.0': // SQL queries for v0.2.0
177 addExtensionChangeTableColumnSql('jackpot', 'points', 'points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
179 addExtensionChangeTableColumnSql('payments', 'payment', 'payment', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
180 addExtensionChangeTableColumnSql('payments', 'price', 'price', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
182 // Update notes (these will be set as task text!)
183 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
186 case '0.2.1': // SQL queries for v0.2.1
187 addConfigAddSql('css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
189 // Update notes (these will be set as task text!)
190 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
193 case '0.2.2': // SQL queries for v0.2.2
194 // Update notes (these will be set as task text!)
195 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
198 case '0.2.3': // SQL queries for v0.2.3
199 addConfigAddSql('guest_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
200 addConfigAddSql('member_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
201 addConfigAddSql('youre_here', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
203 // Update notes (these will be set as task text!)
204 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
207 case '0.2.4': // SQL queries for v0.2.4
208 // PNG image is the default
211 // Is the JPEG file found and required PHP function there?
212 if ((!isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.png')) || (!function_exists('imagecreatefrompng'))) {
213 // Switch to JPEG format because PNG is not available
216 addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
218 // Update notes (these will be set as task text!)
219 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
222 case '0.2.5': // SQL queries for v0.2.5
223 // Update notes (these will be set as task text!)
224 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
227 case '0.2.6': // SQL queries for v0.2.6
228 // Update notes (these will be set as task text!)
229 setExtensionUpdateNotes("Verschoben nach <strong>ext-user</strong>.");
232 case '0.2.7': // SQL queries for v0.2.7
233 addConfigAddSql('stats_limit', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
234 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
236 // Update notes (these will be set as task text!)
237 setExtensionUpdateNotes("<ol>
238 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
239 <li>Mitgliederstatistik mit Seitennavigation.</li>
243 case '0.2.8': // SQL queries for v0.2.8
244 // Update notes (these will be set as task text!)
245 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
248 case '0.2.9': // SQL queries for v0.2.9
249 addConfigAddSql('mt_word', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
250 addConfigAddSql('mt_word2', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
251 addConfigAddSql('mt_word3', "VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
253 // Update notes (these will be set as task text!)
254 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
257 case '0.3.0': // SQL queries for v0.3.0
258 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referral-Ebenen' WHERE `what`='config_points' LIMIT 1");
259 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailvergütungen...' WHERE `what`='payments' LIMIT 1");
261 // Update notes (these will be set as task text!)
262 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
265 case '0.3.1': // SQL queries for v0.3.1
266 addExtensionAddTableUniqueSql('extensions', 'ext_name', '(`ext_name`)');
267 addExtensionAddTableUniqueSql('admins', 'login', '(`login`)');
268 addExtensionAddTableIndexSql('refbanner', 'visible', '(`visible`)');
269 addExtensionAddTableUniqueSql('refdepths', 'level', '(`level`)');
270 addExtensionAddTableIndexSql('refsystem', 'level', '(`level`)');
271 addExtensionAddTableIndexSql('pool', 'data_type', '(`data_type`)');
272 addExtensionAddTableUniqueSql('mod_reg', 'module', '(`module`)');
273 addExtensionAddTableIndexSql('admin_menu', 'action', '(`action`)');
274 addExtensionAddTableIndexSql('admin_menu', 'what', '(`what`)');
275 addExtensionAddTableIndexSql('extensions', 'ext_active', '(`ext_active`)');
276 addExtensionAddTableIndexSql('guest_menu', 'action', '(`action`)');
277 addExtensionAddTableIndexSql('guest_menu', 'what', '(`what`)');
278 addExtensionAddTableIndexSql('guest_menu', 'sort', '(`sort`)');
279 addExtensionAddTableIndexSql('guest_menu', 'visible', '(`visible`)');
280 addExtensionAddTableIndexSql('guest_menu', 'locked', '(`locked`)');
281 addExtensionAddTableIndexSql('member_menu', 'what', '(`what`)');
282 addExtensionAddTableIndexSql('member_menu', 'sort', '(`sort`)');
283 addExtensionAddTableIndexSql('member_menu', 'visible', '(`visible`)');
284 addExtensionAddTableIndexSql('member_menu', 'locked', '(`locked`)');
285 addExtensionAddTableIndexSql('cats', 'visible', '(`visible`)');
286 addExtensionAddTableIndexSql('cats', 'sort', '(`sort`)');
288 // Update notes (these will be set as task text!)
289 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE) und normale Schlüssel (INDEX) gesetzt.");
292 case '0.3.2': // SQL queries for v0.3.2
293 // Connection table between the menu system and the "logical area system"
294 addDropTableSql('admin_menu_las');
295 addCreateTableSql('admin_menu_las', "
296 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
297 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
298 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
299 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
304 'Menu system -> LAS');
306 // All "logical areas" together
307 addDropTableSql('admin_menu_las_data');
308 addCreateTableSql('admin_menu_las_data', "
309 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
310 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
311 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
312 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
313 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
315 UNIQUE INDEX (`la_id`),
318 'LAS position and title data');
320 // Which menu do you like?
321 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
324 addAdminMenuSql('setup', 'config_admin', 'Adminmenü', 'Diverse Einstellungen am Adminmenü vornehmen.', 9);
326 // Update notes (these will be set as task text!)
327 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.");
330 case '0.3.3': // SQL queries for v0.3.3
331 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
332 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
334 // The statistics table
335 addDropTableSql('admin_las_stats');
336 addCreateTableSql('admin_las_stats', "
337 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
338 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
339 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
340 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
345 // Update notes (these will be set as task text!)
346 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.");
349 case '0.3.4': // SQL queries for v0.3.4
350 // Update notes (these will be set as task text!)
351 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
354 case '0.3.5': // SQL queries for v0.3.5
355 // List accounts with no referral
356 addMemberMenuSql('stats', NULL, 'Statistiken', 4);
357 addMemberMenuSql('stats', 'stats2', 'Framekiller-Mails', 2);
358 addMemberMenuSql('extras', NULL, 'Extras', 5);
359 addMemberMenuSql('rals', NULL, 'Rallyes', 6);
360 addMemberMenuSql('account', NULL, 'Ihr Account', 7);
361 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats',`sort`=1,`title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
362 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=3 WHERE `what`='reflinks' LIMIT 1");
364 // Update notes (these will be set as task text!)
365 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
368 case '0.3.6': // SQL queries for v0.3.6
369 addConfigAddSql('salt_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
370 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
371 addExtensionChangeTableColumnSql('admins', 'password', 'password', "VARCHAR(255) NOT NULL DEFAULT ''");
372 addConfigAddSql('rand_no', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
373 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
374 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
375 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
376 addExtensionAddTableColumnSql('mod_reg', 'has_menu', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
377 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
379 // Update notes (these will be set as task text!)
380 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
383 case '0.3.7': // SQL queries for v0.3.7
384 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
387 case '0.3.8': // SQL queries for v0.3.8
388 addExtensionChangeTableColumnSql('admin_menu', 'descr', 'descr', 'MEDIUMTEXT NULL');
389 addExtensionChangeTableColumnSql('pool', 'text', 'text', 'LONGTEXT NOT NULL');
391 // Update notes (these will be set as task text!)
392 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
395 case '0.3.9': // SQL queries for v0.3.9
396 // Update notes (these will be set as task text!)
397 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
400 case '0.4.0': // SQL queries for v0.4.0
401 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
403 // Update notes (these will be set as task text!)
404 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
407 case '0.4.1': // SQL queries for v0.4.1
408 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
410 // Update notes (these will be set as task text!)
411 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
414 case '0.4.2': // SQL queries for v0.4.2
415 // Update notes (these will be set as task text!)
416 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
419 case '0.4.3': // SQL queries for v0.4.3
420 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
421 addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
422 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
423 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
424 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);
426 // Update notes (these will be set as task text!)
427 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
430 case '0.4.4': // SQL queries for v0.4.4
431 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
432 addExtensionChangeTableColumnSql('guest_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
433 addExtensionChangeTableColumnSql('member_menu', 'what', 'what', 'VARCHAR(255) NULL DEFAULT NULL');
434 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
435 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
436 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
438 // Make this depending on ext-menu
439 addExtensionDependency('menu');
441 // Update notes (these will be set as task text!)
442 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
445 case '0.4.5': // SQL queries for v0.4.5
446 addConfigAddSql('last_daily' , 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
447 addConfigAddSql('last_weekly' , 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
448 addConfigAddSql('last_monthly', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
450 // Update notes (these will be set as task text!)
451 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
454 case '0.4.6': // SQL queries for v0.4.6
455 // Update notes (these will be set as task text!)
456 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
459 case '0.4.7': // SQL queries for v0.4.7
460 // Update notes (these will be set as task text!)
461 setExtensionUpdateNotes("Veraltetes Update.");
464 case '0.4.8': // SQL queries for v0.4.8
465 // Update notes (these will be set as task text!)
466 setExtensionUpdateNotes("Update nach <strong>ext-task</strong> verschoben.");
469 case '0.4.9': // SQL queries for v0.4.9
470 // Update notes (these will be set as task text!)
471 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
474 case '0.5.0': // SQL queries for v0.5.0
475 addExtensionDropTableIndexSql('refsystem', 'level');
476 addExtensionDropTableIndexSql('refsystem', 'userid');
477 addExtensionAddTableIndexSql('refsystem', 'userid_level', '(`userid`, `level`)');
479 // Update notes (these will be set as task text!)
480 setExtensionUpdateNotes("Referral-System unterstützt nun detailierte Referral-Übersicht und vieles mehr.");
483 case '0.5.1': // SQL queries for v0.5.1
484 addExtensionDropTableColumnSql('member_menu', 'descr');
486 // Update notes (these will be set as task text!)
487 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
490 case '0.5.2': // SQL queries for v0.5.2
491 addExtensionChangeTableColumnSql('refdepths', 'percents', 'percents', 'FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
493 // Update notes (these will be set as task text!)
494 setExtensionUpdateNotes("Prozentsätze können nun fünf Stellen hinter dem Komma sein.");
497 case '0.5.3': // SQL queries for v0.5.3
498 addConfigAddSql('session_save_path', "VARCHAR(255) NOT NULL DEFAULT ''");
499 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);
501 // Update notes (these will be set as task text!)
502 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
505 case '0.5.4': // SQL queries for v0.5.4
506 // Update notes (these will be set as task text!)
507 setExtensionUpdateNotes("Dieses Update wurde nach ext-refback verschoben.");
510 case '0.5.5': // SQL queries for v0.5.5
511 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
513 // Update notes (these will be set as task text!)
514 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
517 case '0.5.6': // SQL queries for v0.5.6
518 // Update notes (these will be set as task text!)
519 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
522 case '0.5.7': // SQL queries for v0.5.7
523 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
525 // Update notes (these will be set as task text!)
526 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
529 case '0.5.8': // SQL queries for v0.5.8
530 addExtensionDropTableColumnSql('extensions', 'ext_lang_file');
532 // Update notes (these will be set as task text!)
533 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
536 case '0.5.9': // SQL queries for v0.5.9
537 // Table 'filters' is vital because many functionality depends on it, so don't remove it
538 addCreateTableSql('filters', "
539 `filter_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
540 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
541 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
542 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
543 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
544 PRIMARY KEY (`filter_id`),
545 UNIQUE INDEX `name_function` (`filter_name`, `filter_function`)",
549 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
551 // Update notes (these will be set as task text!)
552 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
555 case '0.6.0': // SQL queries for v0.6.0
556 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
558 // Update notes (these will be set as task text!)
559 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
562 case '0.6.1': // SQL queries for v0.6.1
563 // Update notes (these will be set as task text!)
564 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
567 case '0.6.2': // SQL queries for v0.6.2
568 // Depends on refback extension
569 addExtensionDependency('user');
571 // Update notes (these will be set as task text!)
572 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
575 case '0.6.3': // SQL queries for v0.6.3
576 // Update notes (these will be set as task text!)
577 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.");
579 // Add special fix include to fix filters
580 addIncludeToPool('extension', 'inc/fix_filters.php');
583 case '0.6.4': // SQL queries for v0.6.4
585 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
586 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
587 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
588 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
590 // Update notes (these will be set as task text!)
591 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
594 case '0.6.5': // SQL queries for v0.6.5
595 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
597 // Update notes (these will be set as task text!)
598 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
601 case '0.6.6': // SQL queries for v0.6.6
602 addAdminMenuSql('setup', 'config_secure', 'Sicherheitseinstellungen', 'Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.', 9);
603 addAdminMenuSql('setup', 'config_points', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}', 'Stellen Sie hier die Willkommensgutschrift, Referral-Gutschrift (einmalige) usw. ein.', 10);
604 addAdminMenuSql('email', 'email_archiv', 'E-Mail Archiv', 'Sehen Sie sich hier bereits gesendete Mails an.', 6);
606 // Update notes (these will be set as task text!)
607 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
610 case '0.6.7': // SQL queries for v0.6.7
611 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
613 // Update notes (these will be set as task text!)
614 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
617 case '0.6.8': // SQL queries for v0.6.8
618 addExtensionChangeTableColumnSql('admin_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
619 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
620 addExtensionChangeTableColumnSql('guest_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
621 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
622 addExtensionChangeTableColumnSql('member_menu', 'action', 'action', 'VARCHAR(50) NOT NULL');
623 addExtensionChangeTableColumnSql('admin_menu', 'what', 'what', 'VARCHAR(50) NULL DEFAULT NULL');
625 // Update notes (these will be set as task text!)
626 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
629 case '0.6.9': // SQL queries for 0.6.9
631 registerFilter(__FILE__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', FALSE, TRUE, isExtensionDryRun());
633 // Update notes (these will be set as task text!)
634 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
637 case '0.7.0': // SQL queries for 0.7.0
639 addDropTableSql('dns_cache');
640 addCreateTableSql('dns_cache', "
641 `hostname` VARCHAR(255) NOT NULL,
642 `ip` VARCHAR(15) NOT NULL,
643 `added` DATETIME NOT NULL,
644 PRIMARY KEY (`hostname`),
646 'Cache for DNS requests');
649 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
652 registerFilter(__FILE__, __LINE__, 'reset', 'CLEANUP_DNS_CACHE', FALSE, TRUE, isExtensionDryRun());
654 // Update notes (these will be set as task text!)
655 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
658 case '0.7.1': // SQL queries for v0.7.1
659 // This update just depends on ext-timezone to make integration of an essential extension much easier
660 addExtensionDependency('timezone');
662 // Update notes (these will be set as task text!)
663 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
666 case '0.7.2': // SQL queries for v0.7.2
667 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
669 // Update notes (these will be set as task text!)
670 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
673 case '0.7.3': // SQL queries for v0.7.3
674 addExtensionChangeTableColumnSql('filters', 'filter_name', 'filter_name', "VARCHAR(50) NOT NULL DEFAULT ''");
675 addExtensionChangeTableColumnSql('filters', 'filter_function', 'filter_function', "VARCHAR(100) NOT NULL DEFAULT ''");
677 // Update notes (these will be set as task text!)
678 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
681 case '0.7.4': // SQL queries for v0.7.4
682 addExtensionAddTableColumnSql('pool', 'mails_sent', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
684 // Update notes (these will be set as task text!)
685 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
688 case '0.7.5': // SQL queries for v0.7.5
689 addConfigAddSql('last_hourly', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
691 // Update notes (these will be set as task text!)
692 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
695 case '0.7.6': // SQL queries for v0.7.6
696 addConfigChangeSql('last_month', 'last_monthly', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
697 addConfigChangeSql('last_week' , 'last_weekly' , 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
699 // Update notes (these will be set as task text!)
700 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
703 case '0.7.7': // SQL queries for v0.7.7
704 addMemberMenuSql('earn', NULL, 'Verdienen', 2);
705 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn',`sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
707 // Update notes (these will be set as task text!)
708 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
711 case '0.7.8': // SQL queries for v0.7.8
712 // Update notes (these will be set as task text!)
713 setExtensionUpdateNotes("Konfigurationseinträge mit Spaltentyp <strong>ENUM</strong> werden nun immer komplett gross geschrieben.");
716 case '0.7.9': // SQL queries for v0.7.9
717 addExtensionSQL("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_email_max_rec' WHERE `what`='config_email' LIMIT 1");
719 // Update notes (these will be set as task text!)
720 setExtensionUpdateNotes("Adminscript <strong>what-config_email.php</strong> nach <strong>what-list_email_max_rec.php</strong> umbenannt.");
723 case '0.8.0': // SQL queries for v0.8.0
724 // Points account data (this table should not be dropped or else you may have to re-install a lot extensions)
725 addCreateTableSql('points_data', "
726 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
727 `subject` VARCHAR(255) NOT NULL DEFAULT '',
728 `column_name` VARCHAR(255) NOT NULL DEFAULT 'points',
729 `locked_mode` ENUM('LOCKED','UNLOCKED') NOT NULL DEFAULT 'LOCKED',
730 `payment_method` ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL',
731 `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N',
733 UNIQUE KEY (`subject`)",
734 'Points account data');
737 addAdminMenuSql('setup', 'list_point_accounts', 'Guthabenkonten...', 'Veralten Sie hier bequem Einstellungen zu den Guthabenkonten.', 5);
739 // Update notes (these will be set as task text!)
740 setExtensionUpdateNotes("Tabelle <span class=\"bad\">points_data</span> erzeugt, diese soll das {?POINTS?}-Guthaben komplett lenken.");
743 case '0.8.1': // SQL queries for v0.8.1
744 addExtensionChangeTableColumnSql('refdepths', 'level', 'level', 'TINYINT(3) UNSIGNED NULL DEFAULT NULL');
745 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_refdepths` SET `level`=NULL WHERE `level`=0 LIMIT 1');
747 // Update notes (these will be set as task text!)
748 setExtensionUpdateNotes("Level 0 ist nun auch NULL.");
751 case '0.8.2': // SQL queries for v0.8.2
752 addExtensionDropTableIndexSql('points_data', 'ext_name');
753 addExtensionChangeTableColumnSql('points_data', 'ext_name', 'subject', "VARCHAR(255) NOT NULL DEFAULT ''");
754 addExtensionAddTableColumnSql('points_data', 'notify_recipient', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
756 // Register points data
757 registerExtensionPointsData('pool_payback', 'points', 'LOCKED', 'DIRECT');
758 registerExtensionPointsData('mail_deleted', 'points', 'LOCKED', 'DIRECT');
760 // Remove deprecated configuration entry
761 addConfigDropSql('reg_points_mode');
763 // Update notes (these will be set as task text!)
764 setExtensionUpdateNotes("Es sollte der Gutschriftenbetreff und nicht der Erweiterungsname gepeichert werden, zudem brauchen wir einen Konfigurationseintrag nicht mehr.");
767 case '0.8.3': // SQL queries for v0.8.3
768 addConfigAddSql('display_home_in_index', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
770 // Update notes (these will be set as task text!)
771 setExtensionUpdateNotes("Es kann nun die "Home"-Seite in <strong>index.php</strong> angezeigt werden, anstelle der Weiterleitung.");
774 case '0.8.4': // SQL queries for v0.8.4
775 addCreateTableSql('history', "
776 `history_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
777 `history_subject` VARCHAR(255) NOT NULL DEFAULT 'GENERIC',
778 `history_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
779 `history_value` VARCHAR(255) NOT NULL DEFAULT '',
780 `history_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
781 `history_last_used` TIMESTAMP NULL DEFAULT NULL,
782 PRIMARY KEY (`history_id`),
783 INDEX `userid` (`history_userid`),
784 INDEX (`history_last_used` DESC)",
785 'History of used data');
788 registerFilter(__FILE__, __LINE__, 'add_history_entry', 'ADD_HISTORY_ENTRY', FALSE, TRUE, isExtensionDryRun());
790 // Update notes (these will be set as task text!)
791 setExtensionUpdateNotes("Allgemeine Historie-Tabelle hinzugefügt.");
794 case '0.8.5': // SQL queries for v0.8.5
795 // Old-lost configuration entry
796 addConfigDropSql('ext_autopurge');
798 // Update notes (these will be set as task text!)
799 setExtensionUpdateNotes("Uralten Konfigurationseintrag entfernt.");
802 case '0.8.6': // SQL queries for v0.8.6
803 addExtensionChangeTableColumnSql('points_data', 'payment_method', 'payment_method', "ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL'");
804 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_points_data` SET `payment_method`='REFERRAL' WHERE `payment_method` != 'DIRECT'");
806 // Update notes (these will be set as task text!)
807 setExtensionUpdateNotes("Referral/REFERRAL soll es überall heissen (ist ein Typo nur mit einem R zu schreiben).");
810 case '0.8.7': // SQL queries for v0.8.7
811 addConfigAddSql('admin_menu_javascript', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
813 // Update notes (these will be set as task text!)
814 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.");
817 case '0.8.8': // SQL queries for v0.8.8
818 addExtensionDropTableIndexSql('points_data', 'subject');
819 addExtensionAddTableUniqueSql('points_data', 'subject', '(`subject`)');
821 // Update notes (these will be set as task text!)
822 setExtensionUpdateNotes("Der Wert in der Spalte <strong>subject</strong> sollte nur einmal vorkommen, damit eventuell nichts mehrfach durchfl&auuml;ft.");
825 case '0.8.9': // SQL queries for v0.8.9
826 addExtensionAddTableColumnSql('points_data', 'account_provider', "ENUM('EXTENSION', 'CUSTOM') NOT NULL DEFAULT 'EXTENSION'");
827 addConfigAddSql('points_remove_account', "VARCHAR(255) NOT NULL DEFAULT 'points'");
829 // Update notes (these will be set as task text!)
830 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.");
833 case '0.9.0': // SQL queries for v0.9.0
835 registerFilter(__FILE__, __LINE__, 'init', 'GENERATE_FILE_SECRET_HASH', FALSE, TRUE, isExtensionDryRun());
837 // Register points data
838 registerExtensionPointsData('admin_add_single', 'points', 'LOCKED', 'DIRECT');
839 registerExtensionPointsData('admin_add_all', 'points', 'LOCKED', 'DIRECT');
841 // Update notes (these will be set as task text!)
842 setExtensionUpdateNotes("Filter zum Initialisieren von ext-sql_patches registriert und Einträge in <strong>{?_MYSQL_PREFIX?}_points_data</strong> hinzugefügt.");
845 case '0.9.1': // SQL queries for v0.9.1
847 addAdminMenuSql('misc', 'list_server_name', 'Verkehrte Domains auflisten', 'Listet alle als verkehrt erkannten Domains auf.', 4);
850 addCreateTableSql('server_name_log', "
851 `server_name_id` BIGINT (20) NOT NULL AUTO_INCREMENT,
852 `server_name` VARCHAR (255) NOT NULL DEFAULT 'invalid',
853 `server_name_remote_addr` VARCHAR (15) NOT NULL DEFAULT '0.0.0.0',
854 `server_name_ua` TINYTEXT NULL DEFAULT NULL,
855 `server_name_referrer` TINYTEXT NULL DEFAULT NULL,
856 `server_name_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
857 `server_name_counter` BIGINT (20) NOT NULL DEFAULT 1,
858 PRIMARY KEY (`server_name_id`)
859 ", 'Logging of wrong SERVER_NAME');
861 // Update notes (these will be set as task text!)
862 setExtensionUpdateNotes("Loggen von falschen <strong>SERVER_NAME</strong> Einträgen hinzugefügt.");
865 case '0.9.2': // SQL queries for v0.9.2
866 addExtensionAddTableColumnSql('server_name_log', 'server_name_remote_addr', "VARCHAR (15) NOT NULL DEFAULT '0.0.0.0'");
867 addExtensionAddTableColumnSql('server_name_log', 'server_name_counter', 'BIGINT (20) NOT NULL DEFAULT 0');
868 addExtensionAddTableColumnSql('server_name_log', 'server_name_ua', 'TINYTEXT NULL DEFAULT NULL');
869 addExtensionAddTableColumnSql('server_name_log', 'server_name_referrer', 'TINYTEXT NULL DEFAULT NULL');
871 // Update notes (these will be set as task text!)
872 setExtensionUpdateNotes("Sorry, hatte noch IP-Nummer, User-Agent, aufrufende Seite und Zähler vergessen.");
875 case '0.9.3': // SQL queries for v0.9.3
876 addConfigAddSql('ap_server_name', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
877 addConfigAddSql('ap_server_name_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
880 registerFilter(__FILE__, __LINE__, 'extra_autopurge', 'SERVER_NAME_EXTRA_AUTOPURGE', FALSE, TRUE, isExtensionDryRun());
882 // Update notes (these will be set as task text!)
883 setExtensionUpdateNotes("Bereinigung von verkehrten <strong>SERVER_NAME</strong> Einträgen hinzugefügt.");
886 case '0.9.4': // SQL queries for v0.9.4
887 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);
888 addExtensionChangeTableColumnSql('refdepths', 'percents', 'percents', 'FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
890 // Update notes (these will be set as task text!)
891 setExtensionUpdateNotes("Auflisten (usw.) von Referral-Ebenen ausgelagert in eigenen Menüpunkt. Referral-Prozente dürfen nun auch 5 Stellen hinter dem Komma haben.");
894 case '0.9.5': // SQL queries for v0.9.5
895 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_cats' WHERE `action`='setup' AND `what`='config_cats' LIMIT 1");
897 // Update notes (these will be set as task text!)
898 setExtensionUpdateNotes("Menüpunkt umbenannt, da "config" nur für die Konfigurationstabelle <strong>{?_MYSQL_PREFIX?}_config</strong> ist.");
901 case '0.9.6': // SQL queries for v0.9.6
903 registerFilter(__FILE__, __LINE__, 'determine_menu_mode', 'DETERMINE_MENU_MODE_GENERIC', FALSE, TRUE, isExtensionDryRun());
905 // Update notes (these will be set as task text!)
906 setExtensionUpdateNotes("Filter hinzugefügt, der den Menümodus für weitere von dieser Erweiterung benutzten Module erkennen soll.");
909 case '0.9.7': // SQL queries for v0.9.7
911 registerFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXCLUDE_DEFAULT_REFID', FALSE, TRUE, isExtensionDryRun());
913 // Update notes (these will be set as task text!)
914 setExtensionUpdateNotes("Filter hinzugefügt, der die Standard-Referral-Id für SQL-Befehle ausschliesst.");
917 case '0.9.8': // SQL queries for v0.9.8
918 addConfigChangeSql('last_hour' , 'last_hourly' , 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
919 addConfigChangeSql('last_update', 'last_daily' , 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
920 addConfigChangeSql('last_week' , 'last_weekly' , 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
921 addConfigChangeSql('last_month' , 'last_monthly', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
923 // Update notes (these will be set as task text!)
924 setExtensionUpdateNotes("Spalten umbenannt, damit die Namen (Verwendung) nun eindeutiger sind.");
927 case '0.9.9': // SQL queries for v0.9.9
928 addConfigAddSql('last_yearly', 'SMALLINT(4) UNSIGNED ZEROFILL NOT NULL DEFAULT ' . getYear());
929 addConfigChangeSql('pass_len', 'min_password_length', 'TINYINT(2) UNSIGNED NOT NULL DEFAULT 5');
930 addConfigAddSql('min_password_score', 'TINYINT(2) UNSIGNED NOT NULL DEFAULT 3');
931 addModuleSql('api', '{OPEN_LANGUAGE}MODULE_GENERIC_API_TITLE{CLOSE_LANGUAGE}', 'Y', 'Y', 'N', 'N');
933 // Make this depending on ext-mods
934 addExtensionDependency('mods');
936 // Update notes (these will be set as task text!)
937 setExtensionUpdateNotes("Jahres-Reset + generelles API-Modul hinzugefügt.");
940 case '1.0.0': // SQL queries for v1.0.0
941 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='account' WHERE `what`='categories'");
943 // Update notes (these will be set as task text!)
944 setExtensionUpdateNotes("Auswahl im Mitgliedsbereich verschoben nach "Ihr Account".");