2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 08/21/2004 *
4 * =================== Last change: 12/04/2004 *
6 * -------------------------------------------------------------------- *
7 * File : ext-sql_patches.php *
8 * -------------------------------------------------------------------- *
9 * Short description : SQL fixes for pro versions *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Ausgelagertes "Profildaten aendern" *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009 - 2011 by Mailer Developer Team *
20 * For more information visit: http://mxchange.org *
22 * This program is free software; you can redistribute it and/or modify *
23 * it under the terms of the GNU General Public License as published by *
24 * the Free Software Foundation; either version 2 of the License, or *
25 * (at your option) any later version. *
27 * This program is distributed in the hope that it will be useful, *
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
30 * GNU General Public License for more details. *
32 * You should have received a copy of the GNU General Public License *
33 * along with this program; if not, write to the Free Software *
34 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
44 setThisExtensionVersion('0.8.5');
46 // Version history array (add more with , '0.0.1' and so on)
47 setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3', '0.6.4', '0.6.4', '0.6.5', '0.6.6', '0.6.7', '0.6.8', '0.6.9', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7', '0.7.8', '0.7.9', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4', '0.8.5'));
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');
65 // Delete admin menu entries
66 addExtensionSql("DELETE LOW_PRIORITY FROM
67 `{?_MYSQL_PREFIX?}_admin_menu`
83 // Delete/update member menu entries
84 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE
87 (`action`='stats' AND (`what`='' OR `what` IS NULL)) OR
88 (`action`='extras' AND (`what`='' OR `what` IS NULL)) OR
89 (`action`='rals' AND (`what`='' OR `what` IS NULL)) OR
90 (`action`='account' AND (`what`='' OR `what` IS NULL)) OR
92 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='main' WHERE
99 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', true, isExtensionDryRun());
100 unregisterFilter(__FUNCTION__, __LINE__, 'add_history_entry', 'ADD_HISTORY_ENTRY', true, isExtensionDryRun());
103 case 'activate': // Do stuff when admin activates this extension
104 // SQL commands to run
108 case 'deactivate': // Do stuff when admin deactivates this extension
109 // SQL commands to run
113 case 'update': // Update an extension
114 switch (getCurrentExtensionVersion()) {
115 case '0.0.1': // SQL queries for v0.0.1
116 addAdminMenuSql('setup', 'config_extensions', 'Erweitungsmanagement', 'Alle Einstellungen am Erweiterungsmanagement.', 10);
118 // Update notes (these will be set as task text!)
119 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.");
122 case '0.0.2': // SQL queries for v0.0.2
123 addConfigChangeSql('auto_purge', 'auto_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay()*14));
125 // Update notes (these will be set as task text!)
126 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.)");
129 case '0.0.3': // SQL queries for v0.0.3
130 addConfigAddSql('points_word', "VARCHAR(255) NOT NULL DEFAULT '{OPEN_TEMPLATE}DEFAULT_POINTS{CLOSE_TEMPLATE}'");
132 // Update notes (these will be set as task text!)
133 setExtensionUpdateNotes("Das Wort "Punkte" kann nun per Datenbank geändert werden. Damit können Sie anstelle des Wortes Punkte auch Klammlose, Wernis, Primera oder € schreiben.");
136 case '0.0.4': // SQL queries for v0.0.4
137 addConfigAddSql('mails_page', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
139 // Update notes (these will be set as task text!)
140 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugefügt.");
143 case '0.0.5': // SQL queries for v0.0.5
144 addConfigAddSql('index_home', "VARCHAR(255) NOT NULL DEFAULT 'welcome'");
145 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);
147 // Update notes (these will be set as task text!)
148 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
151 case '0.0.6': // SQL queries for v0.0.6
152 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'N'");
154 // Update notes (these will be set as task text!)
155 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.");
158 case '0.0.7': // SQL queries for v0.0.7
159 addConfigAddSql('verbose_sql', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
161 // Update notes (these will be set as task text!)
162 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
165 case '0.0.8': // SQL queries for v0.0.8
166 addConfigAddSql('menu_blur_spacer', "VARCHAR(255) NOT NULL DEFAULT ' <strong><big>·</big></strong> '");
168 // Update notes (these will be set as task text!)
169 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
172 case '0.0.9': // SQL queries for v0.0.9
173 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);
175 // Update notes (these will be set as task text!)
176 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
179 case '0.1.0': // SQL queries for v0.1.0
180 // Update notes (these will be set as task text!)
181 setExtensionUpdateNotes("Soll der einmalige Ref-Bonus über das Referal-System (also alle oberen Refs bekommen auch etwas davon ab) oder direkt dem Werber aufgebucht werden?");
184 case '0.1.1': // SQL queries for v0.1.1
185 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");
186 addConfigAddSql('index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
187 addConfigAddSql('index_cookie', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 365));
189 // Update notes (these will be set as task text!)
190 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.");
193 case '0.1.2': // SQL queries for v0.1.2
194 addAdminMenuSql('setup','config_refid','Standard-Ref-Id','Stellen Sie hier die Mitglied-Id ein, die genommen werden soll, wenn der Gast n icht per Referal-Link Ihren {?mt_word?} aufgerufen hat.', 7);
195 addConfigAddSql('def_refid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
197 // Update notes (these will be set as task text!)
198 setExtensionUpdateNotes("Standard Referal-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
201 case '0.1.3': // SQL queries for v0.1.3
202 addConfigAddSql('refid_target', "ENUM('register','index') NOT NULL DEFAULT 'register'");
204 // Update notes (these will be set as task text!)
205 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
208 case '0.1.4': // SQL queries for v0.1.4
209 // Update notes (these will be set as task text!)
210 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
213 case '0.1.5': // SQL queries for v0.1.5
214 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_has_admin`");
216 // Update notes (these will be set as task text!)
217 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
220 case '0.1.6': // SQL queries for v0.1.6
221 addConfigAddSql('enable_title_deco', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
222 addConfigAddSql('title_left', "VARCHAR(10) NOT NULL DEFAULT '[--'");
223 addConfigAddSql('title_middle', "VARCHAR(10) NOT NULL DEFAULT '-'");
224 addConfigAddSql('title_right', "VARCHAR(10) NOT NULL DEFAULT '--]'");
225 addConfigAddSql('enable_mod_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
226 addConfigAddSql('enable_what_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
227 addAdminMenuSql('setup','config_title','Seitentitel ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
229 // Update notes (these will be set as task text!)
230 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.");
233 case '0.1.7': // SQL queries for v0.1.7
234 // Update notes (these will be set as task text!)
235 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
238 case '0.1.8': // SQL queries for v0.1.8
239 // Update notes (these will be set as task text!)
240 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
243 case '0.1.9': // SQL queries for v0.1.9
244 // Update notes (these will be set as task text!)
245 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
248 case '0.2.0': // SQL queries for v0.2.0
249 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_jackpot` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
251 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `payment` `payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
252 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `price` `price` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
254 // Update notes (these will be set as task text!)
255 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
258 case '0.2.1': // SQL queries for v0.2.1
259 addConfigAddSql('css_php', "ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
261 // Update notes (these will be set as task text!)
262 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
265 case '0.2.2': // SQL queries for v0.2.2
266 // Update notes (these will be set as task text!)
267 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
270 case '0.2.3': // SQL queries for v0.2.3
271 addConfigAddSql('guest_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
272 addConfigAddSql('member_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
273 addConfigAddSql('youre_here', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
275 // Update notes (these will be set as task text!)
276 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
279 case '0.2.4': // SQL queries for v0.2.4
280 // PNG image is the default
283 // Is the JPEG file found and required PHP function there?
284 if ((isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
285 // Switch to JPEG format
288 addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
290 // Update notes (these will be set as task text!)
291 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
294 case '0.2.5': // SQL queries for v0.2.5
295 // Update notes (these will be set as task text!)
296 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
299 case '0.2.6': // SQL queries for v0.2.6
300 // Update notes (these will be set as task text!)
301 setExtensionUpdateNotes("Verschoben nach <strong>ext-user</strong>.");
304 case '0.2.7': // SQL queries for v0.2.7
305 addConfigAddSql('stats_limit', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
306 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
308 // Update notes (these will be set as task text!)
309 setExtensionUpdateNotes("<ol>
310 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
311 <li>Mitgliederstatistik mit Seitennavigation.</li>
315 case '0.2.8': // SQL queries for v0.2.8
316 // Update notes (these will be set as task text!)
317 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
320 case '0.2.9': // SQL queries for v0.2.9
321 addConfigAddSql('mt_word', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
322 addConfigAddSql('mt_word2', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
323 addConfigAddSql('mt_word3', "VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
325 // Update notes (these will be set as task text!)
326 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
329 case '0.3.0': // SQL queries for v0.3.0
330 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
331 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailvergütungen...' WHERE `what`='payments' LIMIT 1");
333 // Update notes (these will be set as task text!)
334 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
337 case '0.3.1': // SQL queries for v0.3.1
338 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD UNIQUE INDEX `ext_name` (`ext_name`)");
339 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD UNIQUE INDEX `login` (`login`)");
340 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` ADD INDEX `visible` (`visible`)");
341 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` ADD UNIQUE INDEX `level` (`level`)");
342 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD INDEX `level` (`level`)");
343 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD INDEX `data_type` (`data_type`)");
344 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD UNIQUE INDEX `module` (`module`)");
345 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `action` (`action`)");
346 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `what` (`what`)");
347 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_type` (`task_type`)");
348 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `status` (`status`)");
349 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_created` (`task_created`)");
350 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD FULLTEXT `subject` (`subject`)");
351 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `subject` (`subject`)");
352 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD INDEX `ext_active` (`ext_active`)");
353 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `action` (`action`)");
354 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `what` (`what`)");
355 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `sort` (`sort`)");
356 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `visible` (`visible`)");
357 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `locked` (`locked`)");
358 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `what` (`what`)");
359 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `sort` (`sort`)");
360 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `visible` (`visible`)");
361 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `locked` (`locked`)");
362 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `visible` (`visible`)");
363 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `sort` (`sort`)");
365 // Update notes (these will be set as task text!)
366 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE) und normale Schlüssel (INDEX) gesetzt.");
369 case '0.3.2': // SQL queries for v0.3.2
370 // Connection table between the menu system and the "logical area system"
371 addDropTableSql('admin_menu_las');
372 addCreateTableSql('admin_menu_las', "
373 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
374 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
375 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
376 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
381 'Menu system -> LAS');
383 // All "logical areas" together
384 addDropTableSql('admin_menu_las_data');
385 addCreateTableSql('admin_menu_las_data', "
386 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
387 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
388 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
389 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
390 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
395 'LAS position and title data');
397 // Which menu do you like?
398 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
401 addAdminMenuSql('setup', 'config_admin', 'Adminmenü', 'Diverse Einstellungen am Adminmenü vornehmen.', 9);
403 // Update notes (these will be set as task text!)
404 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.");
407 case '0.3.3': // SQL queries for v0.3.3
408 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
409 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
411 // The statistics table
412 addDropTableSql('admin_las_stats');
413 addCreateTableSql('admin_las_stats', "
414 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
415 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
416 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
417 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
422 // Update notes (these will be set as task text!)
423 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.");
426 case '0.3.4': // SQL queries for v0.3.4
427 // Update notes (these will be set as task text!)
428 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
431 case '0.3.5': // SQL queries for v0.3.5
432 // List accounts with no referal
433 addMemberMenuSql('stats', NULL, 'Statistiken', 4);
434 addMemberMenuSql('stats', 'stats2', 'Framekiller-Mails', 2);
435 addMemberMenuSql('extras', NULL, 'Extras', 5);
436 addMemberMenuSql('rals', NULL, 'Rallyes', 6);
437 addMemberMenuSql('account', NULL, 'Ihr Account', 7);
438 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`=1, `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
439 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=3 WHERE `what`='reflinks' LIMIT 1");
441 // Update notes (these will be set as task text!)
442 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
445 case '0.3.6': // SQL queries for v0.3.6
446 addConfigAddSql('salt_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
447 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
448 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` CHANGE `password` `password` VARCHAR(255) NOT NULL DEFAULT ''");
449 addConfigAddSql('rand_no', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
450 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
451 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
452 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
453 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
454 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
456 // Update notes (these will be set as task text!)
457 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
460 case '0.3.7': // SQL queries for v0.3.7
461 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
464 case '0.3.8': // SQL queries for v0.3.8
465 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
466 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
468 // Update notes (these will be set as task text!)
469 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
472 case '0.3.9': // SQL queries for v0.3.9
473 // Update notes (these will be set as task text!)
474 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
477 case '0.4.0': // SQL queries for v0.4.0
478 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
480 // Update notes (these will be set as task text!)
481 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
484 case '0.4.1': // SQL queries for v0.4.1
485 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
487 // Update notes (these will be set as task text!)
488 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
491 case '0.4.2': // SQL queries for v0.4.2
492 // Update notes (these will be set as task text!)
493 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
496 case '0.4.3': // SQL queries for v0.4.3
497 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
498 addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
499 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
500 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
501 addAdminMenuSql('setup','config_proxy','Proxy-Einstellungen','Sollte Ihr Webserver sich hinter einem Proxy befinden, so können Sie Ihren {?mt_word?} so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15);
503 // Update notes (these will be set as task text!)
504 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
507 case '0.4.4': // SQL queries for v0.4.4
508 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
509 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
510 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
511 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
512 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
513 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
515 // Make this depending on ext-menu
516 addExtensionDependency('menu');
518 // Update notes (these will be set as task text!)
519 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
522 case '0.4.5': // SQL queries for v0.4.5
523 addConfigAddSql('last_month', 'CHAR(2) NOT NULL DEFAULT 00');
524 addConfigAddSql('last_week', 'CHAR(2) NOT NULL DEFAULT 00');
526 // Update notes (these will be set as task text!)
527 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
530 case '0.4.6': // SQL queries for v0.4.6
531 // Update notes (these will be set as task text!)
532 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
535 case '0.4.7': // SQL queries for v0.4.7
536 // Update notes (these will be set as task text!)
537 setExtensionUpdateNotes("Veraltetes Update.");
540 case '0.4.8': // SQL queries for v0.4.8
541 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)');
543 // Update notes (these will be set as task text!)
544 setExtensionUpdateNotes("Index für Betreff eingefügt.");
547 case '0.4.9': // SQL queries for v0.4.9
548 // Update notes (these will be set as task text!)
549 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
552 case '0.5.0': // SQL queries for v0.5.0
553 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`');
554 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`');
555 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE INDEX `userid_level` (`userid`,`level`)');
557 // Update notes (these will be set as task text!)
558 setExtensionUpdateNotes("Referal-System unterstützt nun detailierte Referal-Übersicht und vieles mehr.");
561 case '0.5.1': // SQL queries for v0.5.1
562 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`');
564 // Update notes (these will be set as task text!)
565 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
568 case '0.5.2': // SQL queries for v0.5.2
569 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
571 // Update notes (these will be set as task text!)
572 setExtensionUpdateNotes("Prozentsätze können nun fünf Stellen hinter dem Komma sein.");
575 case '0.5.3': // SQL queries for v0.5.3
576 addConfigAddSql('session_save_path', "VARCHAR(255) NOT NULL DEFAULT ''");
577 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);
579 // Update notes (these will be set as task text!)
580 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
583 case '0.5.4': // SQL queries for v0.5.4
584 addMemberMenuSql('main', 'reflist', 'Ref-Übersicht', 5);
586 // Update notes (these will be set as task text!)
587 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
590 case '0.5.5': // SQL queries for v0.5.5
591 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
593 // Update notes (these will be set as task text!)
594 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
597 case '0.5.6': // SQL queries for v0.5.6
598 // Update notes (these will be set as task text!)
599 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
602 case '0.5.7': // SQL queries for v0.5.7
603 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
605 // Update notes (these will be set as task text!)
606 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
609 case '0.5.8': // SQL queries for v0.5.8
610 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`');
612 // Update notes (these will be set as task text!)
613 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
616 case '0.5.9': // SQL queries for v0.5.9
617 // Table 'filters' is vital because many functionality depends on it, so don't remove it
618 addCreateTableSql('filters', "
619 `filter_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
620 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
621 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
622 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
623 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
624 PRIMARY KEY (`filter_id`),
625 UNIQUE INDEX `name_function` (`filter_name` , `filter_function`)",
629 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
631 // Update notes (these will be set as task text!)
632 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
635 case '0.6.0': // SQL queries for v0.6.0
636 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
638 // Update notes (these will be set as task text!)
639 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
642 case '0.6.1': // SQL queries for v0.6.1
643 // Update notes (these will be set as task text!)
644 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
647 case '0.6.2': // SQL queries for v0.6.2
648 // Depends on refback extension
649 addExtensionDependency('user');
651 // Update notes (these will be set as task text!)
652 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
655 case '0.6.3': // SQL queries for v0.6.3
656 // Update notes (these will be set as task text!)
657 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Einträge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
659 // Add special fix include to fix filters
660 addIncludeToPool('extension', 'inc/fix_filters.php');
663 case '0.6.4': // SQL queries for v0.6.4
665 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
666 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
667 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
668 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
670 // Update notes (these will be set as task text!)
671 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
674 case '0.6.5': // SQL queries for v0.6.5
675 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
677 // Update notes (these will be set as task text!)
678 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
681 case '0.6.6': // SQL queries for v0.6.6
682 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
683 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
684 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
686 // Update notes (these will be set as task text!)
687 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
690 case '0.6.7': // SQL queries for v0.6.7
691 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
693 // Update notes (these will be set as task text!)
694 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
697 case '0.6.8': // SQL queries for v0.6.8
698 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
699 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
700 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
701 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
702 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
703 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
705 // Update notes (these will be set as task text!)
706 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
709 case '0.6.9': // SQL queries for 0.6.9
711 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
713 // Update notes (these will be set as task text!)
714 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
717 case '0.7.0': // SQL queries for 0.7.0
719 addDropTableSql('dns_cache');
720 addCreateTableSql('dns_cache', "
721 `hostname` VARCHAR(255) NOT NULL,
722 `ip` VARCHAR(15) NOT NULL,
723 `added` DATETIME NOT NULL,
724 PRIMARY KEY (`hostname`),
726 'Cache for DNS requests');
729 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
732 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
734 // Update notes (these will be set as task text!)
735 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
738 case '0.7.1': // SQL queries for v0.7.1
739 // This update just depends on ext-timezone to make integration of an essential extension much easier
740 addExtensionDependency('timezone');
742 // Update notes (these will be set as task text!)
743 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
746 case '0.7.2': // SQL queries for v0.7.2
747 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
749 // Update notes (these will be set as task text!)
750 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
753 case '0.7.3': // SQL queries for v0.7.3
754 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_name` `filter_name` VARCHAR(50) NOT NULL DEFAULT ''");
755 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_function` `filter_function` VARCHAR(100) NOT NULL DEFAULT ''");
757 // Update notes (these will be set as task text!)
758 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
761 case '0.7.4': // SQL queries for v0.7.4
762 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
764 // Update notes (these will be set as task text!)
765 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
768 case '0.7.5': // SQL queries for v0.7.5
769 addConfigAddSql('last_hour', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
771 // Update notes (these will be set as task text!)
772 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
775 case '0.7.6': // SQL queries for v0.7.6
776 addConfigChangeSql('last_month', 'last_month', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
777 addConfigChangeSql('last_week', 'last_week', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
779 // Update notes (these will be set as task text!)
780 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
783 case '0.7.7': // SQL queries for v0.7.7
784 addMemberMenuSql('earn', NULL, 'Verdienen', 2);
785 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn',`sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
787 // Update notes (these will be set as task text!)
788 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
791 case '0.7.8': // SQL queries for v0.7.8
792 // Update notes (these will be set as task text!)
793 setExtensionUpdateNotes("Konfigurationseinträge mit Spaltentyp <strong>ENUM</strong> werden nun immer komplett gross geschrieben.");
796 case '0.7.9': // SQL queries for v0.7.9
797 addExtensionSQL("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_email_max_rec' WHERE `what`='config_email' LIMIT 1");
799 // Update notes (these will be set as task text!)
800 setExtensionUpdateNotes("Adminscript <strong>what-config_email.php</strong> nach <strong>what-list_email_max_rec.php</strong> umbenannt.");
803 case '0.8.0': // SQL queries for v0.8.0
804 // Points account data (this table should not be dropped or else you may have to re-install a lot extensions)
805 addCreateTableSql('points_data', "
806 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
807 `subject` VARCHAR(255) NOT NULL DEFAULT '',
808 `column_name` VARCHAR(255) NOT NULL DEFAULT 'points',
809 `locked_mode` ENUM('LOCKED','UNLOCKED') NOT NULL DEFAULT 'LOCKED',
810 `payment_method` ENUM('DIRECT','REFERAL') NOT NULL DEFAULT 'REFERAL',
811 `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N',
814 'Points account data');
817 addAdminMenuSql('setup', 'list_point_accounts', 'Guthabenkonten...', 'Veralten Sie hier bequem Einstellungen zu den Guthabenkonten.', 5);
819 // Update notes (these will be set as task text!)
820 setExtensionUpdateNotes("Tabelle <em>points_data</em> erzeugt, diese soll das {?POINTS?}-Guthaben komplett lenken.");
823 case '0.8.1': // SQL queries for v0.8.1
824 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `level` `level` TINYINT(3) UNSIGNED NULL DEFAULT NULL');
825 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_refdepths` SET `level`=NULL WHERE `level`=0 LIMIT 1');
827 // Update notes (these will be set as task text!)
828 setExtensionUpdateNotes("Level 0 ist nun auch NULL.");
831 case '0.8.2': // SQL queries for v0.8.2
832 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` DROP INDEX `ext_name`");
833 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` CHANGE `ext_name` `subject` VARCHAR(255) NOT NULL DEFAULT ''");
834 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` CHANGE `payment_method` `payment_method` ENUM('DIRECT','REFERAL') NOT NULL DEFAULT 'REFERAL'");
835 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD INDEX `subject` (`subject`)");
836 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N'");
837 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('pool_payback','points','LOCKED','DIRECT')");
838 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('mail_deleted','points','LOCKED','DIRECT')");
839 addConfigDropSql('reg_points_mode');
841 // Update notes (these will be set as task text!)
842 setExtensionUpdateNotes("Es sollte der Gutschriftenbetreff und nicht der Erweiterungsname gepeichert werden, zudem brauchen wir einen Konfigurationseintrag nicht mehr.");
845 case '0.8.3': // SQL queries for v0.8.3
846 addConfigAddSql('display_home_in_index', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
848 // Update notes (these will be set as task text!)
849 setExtensionUpdateNotes("Es kann nun die "Home"-Seite in <strong>index.php</strong> angezeigt werden, anstelle der Weiterleitung.");
852 case '0.8.4': // SQL queries for v0.8.4
853 addCreateTableSql('history', "
854 `history_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
855 `history_subject` VARCHAR(255) NOT NULL DEFAULT 'GENERIC',
856 `history_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
857 `history_value` VARCHAR(255) NOT NULL DEFAULT '',
858 `history_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
859 `history_last_used` TIMESTAMP NULL DEFAULT NULL,
860 PRIMARY KEY (`history_id`),
861 INDEX `userid` (`history_userid`),
862 INDEX (`history_last_used` DESC)",
863 'History of used data');
866 registerFilter('add_history_entry', 'ADD_HISTORY_ENTRY', false, true, isExtensionDryRun());
868 // Update notes (these will be set as task text!)
869 setExtensionUpdateNotes("Allgemeine Historie-Tabelle hinzugefügt.");
872 case '0.8.5': // SQL queries for v0.8.5
873 // Old-lost configuration entry
874 addConfigDropSql('ext_autopurge');
876 // Update notes (these will be set as task text!)
877 setExtensionUpdateNotes("Uralten Konfigurationseintrag entfernt.");
882 case 'modify': // When the extension got modified
885 case 'test': // For testing purposes
888 case 'init': // Do stuff when extension is initialized
889 // Transfer POINTS word
890 if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
891 // Okay, recent enough, so transfer the word for POINTS
892 setConfigEntry('POINTS', getPointsWord());
896 setConfigEntry('secret_key', '');
898 // Read key from secret file
899 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
900 // Maybe need setup of secret key!
901 loadIncludeOnce('inc/gen_sql_patches.php');
905 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
906 // File hash fas generated so we can also file the secret file... hopefully.
907 $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
908 if (isFileReadable($hashFile)) {
910 setConfigEntry('secret_key', readFromFile($hashFile));
912 // Remove it from database
913 updateConfiguration('file_hash', '');
915 // Cannot read secret file!
916 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
921 default: // Unknown extension mode
922 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));