2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 08/21/2004 *
4 * =================== Last change: 12/04/2004 *
6 * -------------------------------------------------------------------- *
7 * File : ext-sql_patches.php *
8 * -------------------------------------------------------------------- *
9 * Short description : SQL fixes for pro versions *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Ausgelagertes "Profildaten aendern" *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009 - 2011 by Mailer Developer Team *
20 * For more information visit: http://www.mxchange.org *
22 * This program is free software; you can redistribute it and/or modify *
23 * it under the terms of the GNU General Public License as published by *
24 * the Free Software Foundation; either version 2 of the License, or *
25 * (at your option) any later version. *
27 * This program is distributed in the hope that it will be useful, *
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
30 * GNU General Public License for more details. *
32 * You should have received a copy of the GNU General Public License *
33 * along with this program; if not, write to the Free Software *
34 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
44 setThisExtensionVersion('0.8.2');
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'));
49 // Keep this extension always active!
50 setExtensionAlwaysActive('Y');
52 switch (getExtensionMode()) {
53 case 'register': // Do stuff when installation is running
54 // This depends on 'cache' now
55 addExtensionDependency('cache');
58 case 'remove': // Do stuff when removing extension
60 addDropTableSql('admin_menu_las');
61 addDropTableSql('admin_menu_las_data');
62 addDropTableSql('admin_las_stats');
63 addDropTableSql('dns_cache');
65 // Delete admin menu entries
66 addExtensionSql("DELETE LOW_PRIORITY FROM
67 `{?_MYSQL_PREFIX?}_admin_menu`
84 // Delete/update member menu entries
85 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE
88 (`action`='stats' AND (`what`='' OR `what` IS NULL)) OR
89 (`action`='extras' AND (`what`='' OR `what` IS NULL)) OR
90 (`action`='rals' AND (`what`='' OR `what` IS NULL)) OR
91 (`action`='account' AND (`what`='' OR `what` IS NULL)) OR
93 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='main' WHERE
100 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', true, isExtensionDryRun());
103 case 'activate': // Do stuff when admin activates this extension
104 // SQL commands to run
108 case 'deactivate': // Do stuff when admin deactivates this extension
109 // SQL commands to run
113 case 'update': // Update an extension
114 switch (getCurrentExtensionVersion()) {
115 case '0.0.1': // SQL queries for v0.0.1
116 addConfigAddSql('ext_autopurge', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
117 addAdminMenuSql('setup','config_extensions','Erweitungsmanagement','Alle Einstellungen am Erweiterungsmanagement.', 10);
119 // Update notes (these will be set as task text!)
120 setExtensionUpdateNotes("Es kann nun bestimmt werden, ob vom Server gelöschte ext-xxx.php erkannt werden sollen und die verknüpften Daten auch aus der Datenbank entfernt werden sollen.");
123 case '0.0.2': // SQL queries for v0.0.2
124 addConfigChangeSql('auto_purge', 'auto_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay()*14));
126 // Update notes (these will be set as task text!)
127 setExtensionUpdateNotes("In der Tabelle <strong>{?_MYSQL_PREFIX?}_config</strong> musste die Spalte <strong>auto_purge</strong> (autom. Löschen von Bestätigungsmails angepasst werden (war auf dem Testsystem auf TINYINT(4) gesetzt.)");
130 case '0.0.3': // SQL queries for v0.0.3
131 addConfigAddSql('points_word', "VARCHAR(255) NOT NULL DEFAULT '{OPEN_TEMPLATE}DEFAULT_POINTS{CLOSE_TEMPLATE}'");
133 // Update notes (these will be set as task text!)
134 setExtensionUpdateNotes("Das Wort "Punkte" kann nun per Datenbank geändert werden. Damit können Sie anstelle des Wortes Punkte auch Klammlose, Wernis, Primera oder € schreiben.");
137 case '0.0.4': // SQL queries for v0.0.4
138 addConfigAddSql('mails_page', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
140 // Update notes (these will be set as task text!)
141 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugefügt.");
144 case '0.0.5': // SQL queries for v0.0.5
145 addConfigAddSql('index_home', "VARCHAR(255) NOT NULL DEFAULT 'welcome'");
146 addAdminMenuSql('setup','config_home','Home-Seite festlegen','Stellen Sie hier ein, welcher Menüpunkt (what-welcome ist Standard) als Einstiegspunkt in das Menüsystem genutzt werden soll.', 5);
148 // Update notes (these will be set as task text!)
149 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die "Home"-Seite (Eingangsseite). Dies kann nun per Datenbank geändert werden.");
152 case '0.0.6': // SQL queries for v0.0.6
153 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'N'");
155 // Update notes (these will be set as task text!)
156 setExtensionUpdateNotes("Es können nun SQL-Updates von einander abhängig gemacht werden und die CSS-Datei kann per Admin-Bereich (wegen Debuggings) ein- bzw. ausgeschaltet werden.");
159 case '0.0.7': // SQL queries for v0.0.7
160 addConfigAddSql('verbose_sql', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
162 // Update notes (these will be set as task text!)
163 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
166 case '0.0.8': // SQL queries for v0.0.8
167 addConfigAddSql('menu_blur_spacer', "VARCHAR(255) NOT NULL DEFAULT ' <strong><big>·</big></strong> '");
169 // Update notes (these will be set as task text!)
170 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
173 case '0.0.9': // SQL queries for v0.0.9
174 addAdminMenuSql('email','list_unconfirmed','Unbest. Mails auflisten','Schauen Sie sich hier unbestätigte Maillinks an. Bitte diesen Link nur über dem EMail-Archiv oder EMail-Details aufrufen, direkt aufgerufen bekommen Sie eine Fehlermeldung.', 8);
176 // Update notes (these will be set as task text!)
177 setExtensionUpdateNotes("Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.");
180 case '0.1.0': // SQL queries for v0.1.0
181 // Update notes (these will be set as task text!)
182 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?");
185 case '0.1.1': // SQL queries for v0.1.1
186 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");
187 addConfigAddSql('index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
188 addConfigAddSql('index_cookie', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 365));
190 // Update notes (these will be set as task text!)
191 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.");
194 case '0.1.2': // SQL queries for v0.1.2
195 addAdminMenuSql('setup','config_refid','Standard-Ref-Id','Stellen Sie hier die Mitglieder-Id ein, die genommen werden soll, wenn der Gast n icht per Referal-Link Ihren {?mt_word?} aufgerufen hat.', 7);
196 addConfigAddSql('def_refid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
198 // Update notes (these will be set as task text!)
199 setExtensionUpdateNotes("Standard Referal-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
202 case '0.1.3': // SQL queries for v0.1.3
203 addConfigAddSql('refid_target', "ENUM('register','index') NOT NULL DEFAULT 'register'");
205 // Update notes (these will be set as task text!)
206 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
209 case '0.1.4': // SQL queries for v0.1.4
210 // Update notes (these will be set as task text!)
211 setExtensionUpdateNotes("Ungültiges Update (nach ext-theme.php verschoben!).");
214 case '0.1.5': // SQL queries for v0.1.5
215 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_has_admin`");
217 // Update notes (these will be set as task text!)
218 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
221 case '0.1.6': // SQL queries for v0.1.6
222 addConfigAddSql('enable_title_deco', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
223 addConfigAddSql('title_left', "VARCHAR(10) NOT NULL DEFAULT '[--'");
224 addConfigAddSql('title_middle', "VARCHAR(10) NOT NULL DEFAULT '-'");
225 addConfigAddSql('title_right', "VARCHAR(10) NOT NULL DEFAULT '--]'");
226 addConfigAddSql('enable_mod_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
227 addConfigAddSql('enable_what_title', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
228 addAdminMenuSql('setup','config_title','Seitentitel ändern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
230 // Update notes (these will be set as task text!)
231 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.");
234 case '0.1.7': // SQL queries for v0.1.7
235 // Update notes (these will be set as task text!)
236 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
239 case '0.1.8': // SQL queries for v0.1.8
240 // Update notes (these will be set as task text!)
241 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
244 case '0.1.9': // SQL queries for v0.1.9
245 // Update notes (these will be set as task text!)
246 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
249 case '0.2.0': // SQL queries for v0.2.0
250 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_jackpot` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
252 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `payment` `payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
253 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `price` `price` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
255 // Update notes (these will be set as task text!)
256 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
259 case '0.2.1': // SQL queries for v0.2.1
260 addConfigAddSql('css_php', "ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
262 // Update notes (these will be set as task text!)
263 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
266 case '0.2.2': // SQL queries for v0.2.2
267 // Update notes (these will be set as task text!)
268 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
271 case '0.2.3': // SQL queries for v0.2.3
272 addConfigAddSql('guest_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
273 addConfigAddSql('member_menu', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
274 addConfigAddSql('youre_here', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
276 // Update notes (these will be set as task text!)
277 setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich getrennt voneinander abschalten.");
280 case '0.2.4': // SQL queries for v0.2.4
281 // PNG image is the default
284 // Is the JPEG file found and required PHP function there?
285 if ((isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
286 // Switch to JPEG format
289 addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
291 // Update notes (these will be set as task text!)
292 setExtensionUpdateNotes("Generierung des Mailbestätigungscodes hängt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
295 case '0.2.5': // SQL queries for v0.2.5
296 // Update notes (these will be set as task text!)
297 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
300 case '0.2.6': // SQL queries for v0.2.6
301 addAdminMenuSql('user','sub_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen','Allen oder einem Mitglied {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen.', 8);
303 // Update notes (these will be set as task text!)
304 setExtensionUpdateNotes("Abzug von {?POINTS?} nun möglich.");
307 case '0.2.7': // SQL queries for v0.2.7
308 addConfigAddSql('stats_limit', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
309 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
311 // Update notes (these will be set as task text!)
312 setExtensionUpdateNotes("<ol>
313 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
314 <li>Mitgliederstatistik mit Seitennavigation.</li>
318 case '0.2.8': // SQL queries for v0.2.8
319 // Update notes (these will be set as task text!)
320 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
323 case '0.2.9': // SQL queries for v0.2.9
324 addConfigAddSql('mt_word', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
325 addConfigAddSql('mt_word2', "VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
326 addConfigAddSql('mt_word3', "VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
328 // Update notes (these will be set as task text!)
329 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
332 case '0.3.0': // SQL queries for v0.3.0
333 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
334 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailvergütungen...' WHERE `what`='payments' LIMIT 1");
336 // Update notes (these will be set as task text!)
337 setExtensionUpdateNotes("Zwei Menüpunkte umbenannt.");
340 case '0.3.1': // SQL queries for v0.3.1
341 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD UNIQUE KEY `ext_name` (`ext_name`)");
342 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD UNIQUE KEY `login` (`login`)");
343 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` ADD INDEX `visible` (`visible`)");
344 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` ADD UNIQUE KEY `level` (`level`)");
345 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD INDEX `level` (`level`)");
346 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD INDEX `data_type` (`data_type`)");
347 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD UNIQUE KEY `module` (`module`)");
348 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `action` (`action`)");
349 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `what` (`what`)");
350 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_type` (`task_type`)");
351 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `status` (`status`)");
352 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_created` (`task_created`)");
353 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD FULLTEXT `subject` (`subject`)");
354 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `subject` (`subject`)");
355 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD INDEX `ext_active` (`ext_active`)");
356 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `action` (`action`)");
357 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `what` (`what`)");
358 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `sort` (`sort`)");
359 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `visible` (`visible`)");
360 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `locked` (`locked`)");
361 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `what` (`what`)");
362 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `sort` (`sort`)");
363 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `visible` (`visible`)");
364 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `locked` (`locked`)");
365 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `visible` (`visible`)");
366 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `sort` (`sort`)");
368 // Update notes (these will be set as task text!)
369 setExtensionUpdateNotes("Eindeutige Schlüssel (UNIQUE KEY) und normale Schlüssel (INDEX) gesetzt.");
372 case '0.3.2': // SQL queries for v0.3.2
373 // Connection table between the menu system and the "logical area system"
374 addDropTableSql('admin_menu_las');
375 addCreateTableSql('admin_menu_las', "
376 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
377 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
378 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
379 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
384 'Menu system -> LAS');
386 // All "logical areas" together
387 addDropTableSql('admin_menu_las_data');
388 addCreateTableSql('admin_menu_las_data', "
389 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
390 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
391 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
392 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
393 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
395 UNIQUE KEY (`la_id`),
398 'LAS position and title data');
400 // Which menu do you like?
401 addConfigAddSql('admin_menu', "ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
404 addAdminMenuSql('setup', 'config_admin', 'Adminmenü', 'Diverse Einstellungen am Adminmenü vornehmen.', 9);
406 // Update notes (these will be set as task text!)
407 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.");
410 case '0.3.3': // SQL queries for v0.3.3
411 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
412 addConfigAddSql('admin_menu_sorter', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
414 // The statistics table
415 addDropTableSql('admin_las_stats');
416 addCreateTableSql('admin_las_stats', "
417 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
418 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
419 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
420 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
425 // Update notes (these will be set as task text!)
426 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.");
429 case '0.3.4': // SQL queries for v0.3.4
430 // Update notes (these will be set as task text!)
431 setExtensionUpdateNotes("Veraltetes Update (what=list_user&mode=noref)");
434 case '0.3.5': // SQL queries for v0.3.5
435 // List accounts with no referal
436 addMemberMenuSql('stats', NULL, 'Statistiken', 4);
437 addMemberMenuSql('stats', 'stats2', 'Framekiller-Mails', 2);
438 addMemberMenuSql('extras', NULL, 'Extras', 5);
439 addMemberMenuSql('rals', NULL, 'Rallyes', 6);
440 addMemberMenuSql('account', NULL, 'Ihr Account', 7);
441 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`=1, `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
442 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=3 WHERE `what`='reflinks' LIMIT 1");
444 // Update notes (these will be set as task text!)
445 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
448 case '0.3.6': // SQL queries for v0.3.6
449 addConfigAddSql('salt_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
450 addConfigAddSql('pass_scramble', "VARCHAR(255) NOT NULL DEFAULT ''");
451 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` CHANGE `password` `password` VARCHAR(255) NOT NULL DEFAULT ''");
452 addConfigAddSql('rand_no', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
453 addConfigAddSql('file_hash', "VARCHAR(255) NOT NULL DEFAULT ''");
454 addConfigAddSql('master_salt', "VARCHAR(255) NOT NULL DEFAULT ''");
455 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
456 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
457 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
459 // Update notes (these will be set as task text!)
460 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
463 case '0.3.7': // SQL queries for v0.3.7
464 setExtensionUpdateNotes("Problem während des Installationsvorganges behoben.");
467 case '0.3.8': // SQL queries for v0.3.8
468 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
469 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
471 // Update notes (these will be set as task text!)
472 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
475 case '0.3.9': // SQL queries for v0.3.9
476 // Update notes (these will be set as task text!)
477 setExtensionUpdateNotes("Beschreibungstexte für Admin-Menüs können länger sein. Diverse Fixes.");
480 case '0.4.0': // SQL queries for v0.4.0
481 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
483 // Update notes (these will be set as task text!)
484 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
487 case '0.4.1': // SQL queries for v0.4.1
488 addConfigAddSql('show_timings', "ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
490 // Update notes (these will be set as task text!)
491 setExtensionUpdateNotes("Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
494 case '0.4.2': // SQL queries for v0.4.2
495 // Update notes (these will be set as task text!)
496 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
499 case '0.4.3': // SQL queries for v0.4.3
500 addConfigAddSql('proxy_host', "VARCHAR(255) NOT NULL DEFAULT ''");
501 addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
502 addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
503 addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
504 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);
506 // Update notes (these will be set as task text!)
507 setExtensionUpdateNotes("Proxy-Einstellungen hinzugefügt.");
510 case '0.4.4': // SQL queries for v0.4.4
511 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
512 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
513 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
514 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
515 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
516 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
518 // Make this depending on ext-menu
519 addExtensionDependency('menu');
521 // Update notes (these will be set as task text!)
522 setExtensionUpdateNotes("Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.");
525 case '0.4.5': // SQL queries for v0.4.5
526 addConfigAddSql('last_month', 'CHAR(2) NOT NULL DEFAULT 00');
527 addConfigAddSql('last_week', 'CHAR(2) NOT NULL DEFAULT 00');
529 // Update notes (these will be set as task text!)
530 setExtensionUpdateNotes("Täglichen/wöchentlichen/monatlichen Reset verbessert.");
533 case '0.4.6': // SQL queries for v0.4.6
534 // Update notes (these will be set as task text!)
535 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
538 case '0.4.7': // SQL queries for v0.4.7
539 // Update notes (these will be set as task text!)
540 setExtensionUpdateNotes("Veraltetes Update.");
543 case '0.4.8': // SQL queries for v0.4.8
544 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)');
546 // Update notes (these will be set as task text!)
547 setExtensionUpdateNotes("Index für Betreff eingefügt.");
550 case '0.4.9': // SQL queries for v0.4.9
551 // Update notes (these will be set as task text!)
552 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
555 case '0.5.0': // SQL queries for v0.5.0
556 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`');
557 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`');
558 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` (`userid`, `level`)');
560 // Update notes (these will be set as task text!)
561 setExtensionUpdateNotes("Referal-System unterstützt nun detailierte Referal-Übersicht und vieles mehr.");
564 case '0.5.1': // SQL queries for v0.5.1
565 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`');
567 // Update notes (these will be set as task text!)
568 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmenü entfernt, welche ohnehin nicht genutzt wird.");
571 case '0.5.2': // SQL queries for v0.5.2
572 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000');
574 // Update notes (these will be set as task text!)
575 setExtensionUpdateNotes("Prozentsätze können nun fünf Stellen hinter dem Komma sein.");
578 case '0.5.3': // SQL queries for v0.5.3
579 addConfigAddSql('session_save_path', "VARCHAR(255) NOT NULL DEFAULT ''");
580 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);
582 // Update notes (these will be set as task text!)
583 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com nötig.");
586 case '0.5.4': // SQL queries for v0.5.4
587 addMemberMenuSql('main', 'reflist', 'Ref-Übersicht', 5);
589 // Depends on refback extension
590 addExtensionDependency('refback');
592 // Update notes (these will be set as task text!)
593 setExtensionUpdateNotes("Ref-Übersicht eingebaut. Diese hängt von der Erweiterung <strong>refback</strong> ab.");
596 case '0.5.5': // SQL queries for v0.5.5
597 addConfigAddSql('show_points_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
599 // Update notes (these will be set as task text!)
600 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbestätigten Mails kann nun optional abgeschaltet werden.");
603 case '0.5.6': // SQL queries for v0.5.6
604 // Update notes (these will be set as task text!)
605 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
608 case '0.5.7': // SQL queries for v0.5.7
609 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
611 // Update notes (these will be set as task text!)
612 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&mode=norefs verschoben.");
615 case '0.5.8': // SQL queries for v0.5.8
616 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`');
618 // Update notes (these will be set as task text!)
619 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
622 case '0.5.9': // SQL queries for v0.5.9
623 // Table 'filters' is vital because many functionality depends on it, so don't remove it
624 addCreateTableSql('filters', "
625 `filter_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
626 `filter_name` VARCHAR(50) NOT NULL DEFAULT '',
627 `filter_function` VARCHAR(100) NOT NULL DEFAULT '',
628 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
629 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
630 PRIMARY KEY (`filter_id`),
631 UNIQUE `name_function` (`filter_name` , `filter_function`)",
635 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und lässt diese de- bzw. wieder aktivieren.', 17);
637 // Update notes (these will be set as task text!)
638 setExtensionUpdateNotes("Tabellen für Filter-System hinzugefügt.");
641 case '0.6.0': // SQL queries for v0.6.0
642 addConfigAddSql('update_filter_usage', "ENUM('N','Y') NOT NULL DEFAULT 'N'");
644 // Update notes (these will be set as task text!)
645 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Zählen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
648 case '0.6.1': // SQL queries for v0.6.1
649 // Update notes (these will be set as task text!)
650 setExtensionUpdateNotes("Nicht mehr gültiges Update.");
653 case '0.6.2': // SQL queries for v0.6.2
654 // Depends on refback extension
655 addExtensionDependency('user');
657 // Update notes (these will be set as task text!)
658 setExtensionUpdateNotes("Abhängigkeit von <u>ext-user</u> gesetzt.");
661 case '0.6.3': // SQL queries for v0.6.3
662 // Update notes (these will be set as task text!)
663 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Einträge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
665 // Add special fix include to fix filters
666 addIncludeToPool('extension', 'inc/fix_filters.php');
669 case '0.6.4': // SQL queries for v0.6.4
671 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
672 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
673 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
674 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
676 // Update notes (these will be set as task text!)
677 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
680 case '0.6.5': // SQL queries for v0.6.5
681 addConfigChangeSql('css_php', 'css_php', "ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
683 // Update notes (these will be set as task text!)
684 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
687 case '0.6.6': // SQL queries for v0.6.6
688 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
689 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
690 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
692 // Update notes (these will be set as task text!)
693 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
696 case '0.6.7': // SQL queries for v0.6.7
697 addConfigChangeSql('index_delay', 'index_delay', 'TINYINT(3) NOT NULL DEFAULT 0');
699 // Update notes (these will be set as task text!)
700 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
703 case '0.6.8': // SQL queries for v0.6.8
704 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
705 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
706 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
707 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
708 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `action` `action` VARCHAR(50) NOT NULL');
709 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
711 // Update notes (these will be set as task text!)
712 setExtensionUpdateNotes("Spalten verkürzt, damit die Schlüssel passen.");
715 case '0.6.9': // SQL queries for 0.6.9
717 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
719 // Update notes (these will be set as task text!)
720 setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO).");
723 case '0.7.0': // SQL queries for 0.7.0
725 addDropTableSql('dns_cache');
726 addCreateTableSql('dns_cache', "
727 `hostname` VARCHAR(255) NOT NULL,
728 `ip` VARCHAR(15) NOT NULL,
729 `added` DATETIME NOT NULL,
730 PRIMARY KEY (`hostname`),
732 'Cache for DNS requests');
735 addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
738 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
740 // Update notes (these will be set as task text!)
741 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugefügt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
744 case '0.7.1': // SQL queries for v0.7.1
745 // This update just depends on ext-timezone to make integration of an essential extension much easier
746 addExtensionDependency('timezone');
748 // Update notes (these will be set as task text!)
749 setExtensionUpdateNotes("Zeitzone ist nun mit ext-timezone konfigurierbar.");
752 case '0.7.2': // SQL queries for v0.7.2
753 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `task_type`='MEMBER_SUPPORT' WHERE `task_type`='SUPPORT_MEMBER'");
755 // Update notes (these will be set as task text!)
756 setExtensionUpdateNotes("Daten an Namenskonvention angepasst.");
759 case '0.7.3': // SQL queries for v0.7.3
760 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_name` `filter_name` VARCHAR(50) NOT NULL DEFAULT ''");
761 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_filters` CHANGE `filter_function` `filter_function` VARCHAR(100) NOT NULL DEFAULT ''");
763 // Update notes (these will be set as task text!)
764 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
767 case '0.7.4': // SQL queries for v0.7.4
768 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
770 // Update notes (these will be set as task text!)
771 setExtensionUpdateNotes("Spalten in Filtertabelle gekürzt (SQL-Fehler wegen zu grossem Schlüssel).");
774 case '0.7.5': // SQL queries for v0.7.5
775 addConfigAddSql('last_hour', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
777 // Update notes (these will be set as task text!)
778 setExtensionUpdateNotes("Aktuelle Stunde hinzugefügt (ist nicht konfigurierbar).");
781 case '0.7.6': // SQL queries for v0.7.6
782 addConfigChangeSql('last_month', 'last_month', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
783 addConfigChangeSql('last_week', 'last_week', 'TINYINT(2) UNSIGNED ZEROFILL NOT NULL DEFAULT 00');
785 // Update notes (these will be set as task text!)
786 setExtensionUpdateNotes("Spaltentyp fuer kleine Zahlen sollten auch z.B. TINYINT sein.");
789 case '0.7.7': // SQL queries for v0.7.7
790 addMemberMenuSql('earn', NULL, 'Verdienen', 2);
791 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='earn', `sort`=1 WHERE `what`='unconfirmed' LIMIT 1");
793 // Update notes (these will be set as task text!)
794 setExtensionUpdateNotes("Menüpunkt <strong>Verdienen</strong> hinzugefügt und <strong>Unbestätigte Mails</strong> als ersten Punkt dort hin verschoben.");
797 case '0.7.8': // SQL queries for v0.7.8
798 // Update notes (these will be set as task text!)
799 setExtensionUpdateNotes("Konfigurationseinträge mit Spaltentyp <strong>ENUM</strong> werden nun immer komplett gross geschrieben.");
802 case '0.7.9': // SQL queries for v0.7.9
803 addExtensionSQL("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_email_max_rec' WHERE `what`='config_email' LIMIT 1");
805 // Update notes (these will be set as task text!)
806 setExtensionUpdateNotes("Adminscript <strong>what-config_email.php</strong> nach <strong>what-list_email_max_rec.php</strong> umbenannt.");
809 case '0.8.0': // SQL queries for v0.8.0
810 // Points account data (this table should not be dropped or else you may have to re-install a lot extensions)
811 addCreateTableSql('points_data', "
812 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
813 `subject` VARCHAR(255) NOT NULL DEFAULT '',
814 `column_name` VARCHAR(255) NOT NULL DEFAULT 'points',
815 `locked_mode` ENUM('LOCKED','UNLOCKED') NOT NULL DEFAULT 'LOCKED',
816 `payment_method` ENUM('DIRECT','REFERAL') NOT NULL DEFAULT 'REFERAL',
817 `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N',
820 'Points account data');
823 addAdminMenuSql('setup','list_point_accounts','Guthabenkonten...','Veralten Sie hier bequem Einstellungen zu den Guthabenkonten.',5);
825 // Update notes (these will be set as task text!)
826 setExtensionUpdateNotes("Tabelle <em>points_data</em> erzeugt, diese soll das {?POINTS?}-Guthaben komplett lenken.");
829 case '0.8.1': // SQL queries for v0.8.1
830 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `level` `level` TINYINT(3) UNSIGNED NULL DEFAULT NULL');
831 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_refdepths` SET `level`=NULL WHERE `level`=0 LIMIT 1');
833 // Update notes (these will be set as task text!)
834 setExtensionUpdateNotes("Level 0 ist nun auch NULL.");
837 case '0.8.2': // SQL queries for v0.8.2
838 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` DROP INDEX `ext_name`");
839 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` CHANGE `ext_name` `subject` VARCHAR(255) NOT NULL DEFAULT ''");
840 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` CHANGE `payment_method` `payment_method` ENUM('DIRECT','REFERAL') NOT NULL DEFAULT 'REFERAL'");
841 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD INDEX `subject` (`subject`)");
842 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N'");
843 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`) VALUES ('pool_payback','points','LOCKED','DIRECT')");
844 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`) VALUES ('mail_deleted','points','LOCKED','DIRECT')");
845 addConfigDropSql('reg_points_mode');
847 // Update notes (these will be set as task text!)
848 setExtensionUpdateNotes("Es sollte der Gutschriftenbetreff und nicht der Erweiterungsname gepeichert werden, zudem brauchen wir einen Konfigurationseintrag nicht mehr.");
853 case 'modify': // When the extension got modified
856 case 'test': // For testing purposes
859 case 'init': // Do stuff when extension is initialized
861 setConfigEntry('secret_key', '');
863 // Read key from secret file
864 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
865 // Maybe need setup of secret key!
866 loadIncludeOnce('inc/gen_sql_patches.php');
870 if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
871 // File hash fas generated so we can also file the secret file... hopefully.
872 $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
873 if (isFileReadable($hashFile)) {
875 setConfigEntry('secret_key', readFromFile($hashFile));
877 // Remove it from database
878 updateConfiguration('file_hash', '');
880 // Cannot read secret file!
881 debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
885 // Transfer words/numbers to constants if config entry is found
886 if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
887 setConfigEntry('POINTS', getPointsWord());
891 default: // Unknown extension mode
892 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));