f68de3c57ffdf613fbec8d727d62556b7b4509ab
[mailer.git] / inc / extensions / ext-sql_patches.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 08/21/2004 *
4  * ===================                          Last change: 12/04/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-sql_patches.php                              *
8  * -------------------------------------------------------------------- *
9  * Short description : SQL fixes for pro versions                       *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Ausgelagertes "Profildaten aendern"              *
12  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
17  * Needs to be in all Files and every File needs "svn propset           *
18  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
19  * -------------------------------------------------------------------- *
20  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
21  * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
22  * For more information visit: http://www.mxchange.org                  *
23  *                                                                      *
24  * This program is free software; you can redistribute it and/or modify *
25  * it under the terms of the GNU General Public License as published by *
26  * the Free Software Foundation; either version 2 of the License, or    *
27  * (at your option) any later version.                                  *
28  *                                                                      *
29  * This program is distributed in the hope that it will be useful,      *
30  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
31  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
32  * GNU General Public License for more details.                         *
33  *                                                                      *
34  * You should have received a copy of the GNU General Public License    *
35  * along with this program; if not, write to the Free Software          *
36  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
37  * MA  02110-1301  USA                                                  *
38  ************************************************************************/
39
40 // Some security stuff...
41 if (!defined('__SECURITY')) {
42         die();
43 } // END - if
44
45 // Version number
46 setThisExtensionVersion('0.7.0');
47
48 // Version history array (add more with , '0.1.0' and so on)
49 setExtensionVersionHistory(array('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'));
50
51 // Keep this extension always active!
52 setExtensionAlwaysActive('Y');
53
54 switch (getExtensionMode()) {
55         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
56                 // SQL commands to run
57                 addExtensionSql('');
58                 break;
59
60         case 'remove': // Do stuff when removing extension
61                 // Drop tables
62                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las`');
63                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las_data`');
64                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_stats`');
65                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_filters`');
66                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_dns_cache`');
67
68                 // Delete admin menu entries
69                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE
70 `what`='config_extensions' OR
71 `what`='config_home' OR
72 `what`='list_unconfirmed' OR
73 `what`='config_refid' OR
74 `what`='config_title' OR
75 `what`='sub_points' OR
76 `what`='config_admin' OR
77 `what`='config_proxy' OR
78 `what`='config_session' OR
79 `what`='list_filter'");
80
81                 // Delete/update member menu entries
82                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE
83 `what`='stats2' OR
84 `what`='reflist' OR
85 (`action`='stats' AND (`what`='' OR `what` IS NULL)) OR
86 (`action`='extras' AND (`what`='' OR `what` IS NULL)) OR
87 (`action`='rals' AND (`what`='' OR `what` IS NULL)) OR
88 (`action`='account' AND (`what`='' OR `what` IS NULL))");
89                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='main' WHERE
90 `action`='stats' OR
91 `action`='extras' OR
92 `action`='rals' OR
93 `action`='account'");
94
95                 // Drop indexes
96                 /* @TODO SQL_ALTER_TABLE() should work now properly
97                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP UNIQUE KEY `ext_name`");
98                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` DROP UNIQUE KEY `login`");
99                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` DROP INDEX `visible`");
100                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` DROP UNIQUE KEY `level`");
101                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`");
102                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` DROP INDEX `data_type`");
103                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` DROP UNIQUE KEY `module`");
104                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` DROP INDEX `action`");
105                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` DROP INDEX `what`");
106                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP INDEX `task_type`");
107                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP INDEX `status`");
108                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP INDEX `task_created`");
109                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP FULLTEXT `subject`");
110                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` DROP INDEX `subject`");
111                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP INDEX `ext_active`");
112                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `action`");
113                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `what`");
114                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `sort`");
115                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `visible`");
116                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` DROP INDEX `locked`");
117                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `what`");
118                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `sort`");
119                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `visible`");
120                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP INDEX `locked`");
121                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` DROP INDEX `visible`");
122                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` DROP INDEX `sort`");
123                 */
124
125                 // Unregister filter
126                 unregisterFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', true, getExtensionDryRun());
127                 break;
128
129         case 'activate': // Do stuff when admin activates this extension
130                 // SQL commands to run
131                 addExtensionSql('');
132                 break;
133
134         case 'deactivate': // Do stuff when admin deactivates this extension
135                 // SQL commands to run
136                 addExtensionSql('');
137                 break;
138
139         case 'update': // Update an extension
140                 switch (getCurrentExtensionVersion()) {
141                         case '0.0.1': // SQL queries for v0.0.1
142                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `ext_autopurge` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
143                                 addAdminMenuSql('setup','config_extensions','Erweitungsmanagement','Alle Einstellungen am Erweiterungsmanagement.', 10);
144
145                                 // Update notes (these will be set as task text!)
146                                 setExtensionUpdateNotes("Es kann nun bestimmt werden, ob vom Server gel&ouml;schte ext-xxx.php erkannt werden sollen und die verkn&uuml;pften Daten auch aus der Datenbank entfernt werden sollen.");
147                                 break;
148
149                         case '0.0.2': // SQL queries for v0.0.2
150                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `auto_purge` `auto_purge` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY')*14)."");
151
152                                 // Update notes (these will be set as task text!)
153                                 setExtensionUpdateNotes("In der Tabelle <strong>{?_MYSQL_PREFIX?}_config</strong> musste die Spalte <strong>auto_purge</strong> (autom. L&ouml;schen von Best&auml;tigungsmails angepasst werden (war auf dem Testsystem auf TINYINT(4) gesetzt.)");
154                                 break;
155
156                         case '0.0.3': // SQL queries for v0.0.3
157                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `points_word` VARCHAR(255) NOT NULL DEFAULT 'Punkte'");
158
159                                 // Update notes (these will be set as task text!)
160                                 setExtensionUpdateNotes("Das Wort &quot;Punkte&quot; kann nun per Datenbank ge&auml;ndert werden. Damit k&ouml;nnen Sie anstelle des Wortes Punkte auch Klammlose, Wernis, Primera oder &euro; schreiben.");
161                                 break;
162
163                         case '0.0.4': // SQL queries for v0.0.4
164                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mails_page` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
165
166                                 // Update notes (these will be set as task text!)
167                                 setExtensionUpdateNotes("Anzahl Mails pro Seite in <strong>EMail-Details ansehen</strong> und <strong>EMail-Archiv</strong> hinzugef&uuml;gt.");
168                                 break;
169
170                         case '0.0.5': // SQL queries for v0.0.5
171                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `index_home` VARCHAR(255) NOT NULL DEFAULT 'welcome'");
172                                 addAdminMenuSql('setup','config_home','Home-Seite festlegen','Stellen Sie hier ein, welcher Men&uuml;punkt (what-welcome ist Standart) als Einstiegspunkt in das Men&uuml;system genutzt werden soll.', 5);
173
174                                 // Update notes (these will be set as task text!)
175                                 setExtensionUpdateNotes("Die what-welcome.php ist derzeit die &quot;Home&quot;-Seite (Eingangsseite). Dies kann nun per Datenbank ge&auml;ndert werden.");
176                                 break;
177
178                         case '0.0.6': // SQL queries for v0.0.6
179                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'N'");
180
181                                 // Update notes (these will be set as task text!)
182                                 setExtensionUpdateNotes("Es k&ouml;nnen nun SQL-Updates von einander abh&auml;ngig gemacht werden und die CSS-Datei kann per Admin-Bereich (wegen Debuggings) ein- bzw. ausgeschaltet werden.");
183                                 break;
184
185                         case '0.0.7': // SQL queries for v0.0.7
186                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `verbose_sql` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
187
188                                 // Update notes (these will be set as task text!)
189                                 setExtensionUpdateNotes("Die SQL-Anweisungen werden bei eingeschalteter Verbose-Funktion detailiert angezeigt.");
190                                 break;
191
192                         case '0.0.8': // SQL queries for v0.0.8
193                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `menu_blur_spacer` VARCHAR(255) NOT NULL DEFAULT '&nbsp;<strong><big>&middot;</big></strong>&nbsp;'");
194
195                                 // Update notes (these will be set as task text!)
196                                 setExtensionUpdateNotes("Nette Mouse-Hover-Effekte eingebaut (Anleitung <strong>MENUE_HOVER.txt</strong> zum Patchen der general.css bitte lesen!)");
197                                 break;
198
199                         case '0.0.9': // SQL queries for v0.0.9
200                                 addAdminMenuSql('email','list_unconfirmed','Unbest. Mails auflisten','Schauen Sie sich hier unbest&auml;tigte Maillinks an. Bitte diesen Link nur &uuml;ber dem EMail-Archiv oder EMail-Details aufrufen, direkt aufgerufen bekommen Sie eine Fehlermeldung.', 8);
201
202                                 // Update notes (these will be set as task text!)
203                                 setExtensionUpdateNotes("Unbest&auml;tigte Maillinks k&ouml;nnen unter Email-Management -&gt; Unbest. Mails auflisten aufgelistet werden.");
204                                 break;
205
206                         case '0.1.0': // SQL queries for v0.2.1
207                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `reg_points_mode` ENUM('ref','direct') NOT NULL DEFAULT 'ref'");
208
209                                 // Update notes (these will be set as task text!)
210                                 setExtensionUpdateNotes("Soll der einmalige Ref-Bonus &uuml;ber das Referal-System (also alle oberen Refs bekommen auch etwas davon ab) oder direkt dem Werber aufgebucht werden?");
211                                 break;
212
213                         case '0.1.1': // SQL queries for v0.1.1
214                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Home-/Eingangsseite', descr='Stellen Sie hier ein, welcher Men&uuml;punkt (what-welcome ist Standart) als Einstiegspunkt in das Men&uuml;system genutzt werden soll und wie die automatische Weiterleitung in der Eingangsseite funktionieren soll.' WHERE `what`='config_home' LIMIT 1");
215                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `index_delay` TINYINT(3) NOT NULL DEFAULT 0");
216                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `index_cookie` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY')*365)."");
217
218                                 // Update notes (these will be set as task text!)
219                                 setExtensionUpdateNotes("Sie k&ouml;nnen nun <a href=\"{%url=modules.php?module=admin&amp;what=config_home%}\">hier</a> die Verz&ouml;gerungszeit in der <a href=\"{%url=index.php%}\">Eingangsseite</a> einstellen.");
220                                 break;
221
222                         case '0.1.2': // SQL queries for v0.1.2
223                                 addAdminMenuSql('setup','config_refid','Standart-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);
224                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `def_refid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
225
226                                 // Update notes (these will be set as task text!)
227                                 setExtensionUpdateNotes("Standart Referal-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
228                                 break;
229
230                         case '0.1.3': // SQL queries for v0.1.3
231                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD refid_target ENUM('register','index') NOT NULL DEFAULT 'register'");
232
233                                 // Update notes (these will be set as task text!)
234                                 setExtensionUpdateNotes("Auf welche Seite soll der Ref-Link zeigen? Eingangsseite oder Anmeldeformular?");
235                                 break;
236
237                         case '0.1.4': // SQL queries for v0.1.4
238                                 // Update notes (these will be set as task text!)
239                                 setExtensionUpdateNotes("Ung&uuml;ltiges Update (nach ext-theme.php verschoben!).");
240                                 break;
241
242                         case '0.1.5': // SQL queries for v0.1.5
243                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP ext_has_admin");
244
245                                 // Update notes (these will be set as task text!)
246                                 setExtensionUpdateNotes("Spalte <u>ext_has_admin</u> aus der Tabelle <u>{?_MYSQL_PREFIX?}_extensions</u> entfernt, da sie keinen Sinn mehr macht.");
247                                 break;
248
249                         case '0.1.6': // SQL queries for v0.1.6
250                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `enable_title_deco` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
251                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `title_left` VARCHAR(10) NOT NULL DEFAULT '[--'");
252                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `title_middle` VARCHAR(10) NOT NULL DEFAULT '-'");
253                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `title_right` VARCHAR(10) NOT NULL DEFAULT '--]'");
254                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `enable_mod_title` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
255                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `enable_what_title` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
256                                 addAdminMenuSql('setup','config_title','Seitentitel &auml;ndern','De-/aktivieren Sie hier die Dekorationen, sowie Modul-Titel und what-Titel im Seitentitel.', 8);
257
258                                 // Update notes (these will be set as task text!)
259                                 setExtensionUpdateNotes("Dekorationen des Seitentiteles lassen sich ein- und ausschalten und selber definieren; Modul-Titel und Titel der <strong>what</strong>-Dateien kann hinzugef&uuml;gt werden.");
260                                 break;
261
262                         case '0.1.7': // SQL queries for v0.1.7
263                                 // Update notes (these will be set as task text!)
264                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
265                                 break;
266
267                         case '0.1.8': // SQL queries for v0.1.8
268                                 // Update notes (these will be set as task text!)
269                                 setExtensionUpdateNotes("mad_count und last_mad werden nun aus der Datenbank geladen");
270                                 break;
271
272                         case '0.1.9': // SQL queries for v0.1.9
273                                 // Update notes (these will be set as task text!)
274                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
275                                 break;
276
277                         case '0.2.0': // SQL queries for v0.2.0
278                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_jackpot` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
279
280                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `payment` `payment` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
281                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_payments` CHANGE `price` `price` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
282
283                                 // Update notes (these will be set as task text!)
284                                 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
285                                 break;
286
287                         case '0.2.1': // SQL queries for v0.2.1
288                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `css_php` ENUM('DIRECT','FILE') NOT NULL DEFAULT 'FILE'");
289
290                                 // Update notes (these will be set as task text!)
291                                 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
292                                 break;
293
294                         case '0.2.2': // SQL queries for v0.2.2
295                                 // Update notes (these will be set as task text!)
296                                 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
297                                 break;
298
299                         case '0.2.3': // SQL queries for v0.2.3
300                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `guest_menu` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
301                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `member_menu` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
302                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `youre_here` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
303
304                                 // Update notes (these will be set as task text!)
305                                 setExtensionUpdateNotes("Gast- und Mitgliedsmen&uuml;s lassen sich getrennt voneinander abschalten.");
306                                 break;
307
308                         case '0.2.4': // SQL queries for v0.2.4
309                                 $auto_type = 'png'; // PNG image is the default
310                                 if ((isIncludeReadable('theme/'.getCurrentTheme().'/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
311                                         // Switch to JPEG format
312                                         $auto_type = 'jpg';
313                                 }
314                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `img_type` ENUM('jpg','png') NOT NULL DEFAULT '".$auto_type."'");
315
316                                 // Update notes (these will be set as task text!)
317                                 setExtensionUpdateNotes("Generierung des Mailbest&auml;tigungscodes h&auml;ngt davon ab, ob die PHP-Funktion <u>imagecreatefromjpeg()</u> und das JPEG-Bild vorhanden sind oder nicht.");
318                                 break;
319
320                         case '0.2.5': // SQL queries for v0.2.5
321                                 // Update notes (these will be set as task text!)
322                                 setExtensionUpdateNotes("Spalten <u>max_mails</u> und <u>receive_mails</u> auf BIGINT(20) gesetzt.");
323                                 break;
324
325                         case '0.2.6': // SQL queries for v0.2.6
326                                 addAdminMenuSql('user','sub_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen','Allen oder einem Mitglied {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen.', 8);
327
328                                 // Update notes (these will be set as task text!)
329                                 setExtensionUpdateNotes("Abzug von {?POINTS?} nun m&ouml;glich.");
330                                 break;
331
332                         case '0.2.7': // SQL queries for v0.2.7
333                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `stats_limit` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
334                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='config_stats' WHERE `what`='stats' LIMIT 1");
335
336                                 // Update notes (these will be set as task text!)
337                                 setExtensionUpdateNotes("<ol>
338 <li>Das Mitglied kann das derzeitige Design in sein Profil abspeichern.</li>
339 <li>Mitgliederstatistik mit Seitennavigation.</li>
340 </ol>");
341                                 break;
342
343                         case '0.2.8': // SQL queries for v0.2.8
344                                 // Update notes (these will be set as task text!)
345                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
346                                 break;
347
348                         case '0.2.9': // SQL queries for v0.2.9
349                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mt_word` VARCHAR(255) NOT NULL DEFAULT 'Mailtausch'");
350                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mt_word2` VARCHAR(255) NOT NULL DEFAULT 'Mailtausches'");
351                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `mt_word3` VARCHAR(255) NOT NULL DEFAULT 'Mailtauscher'");
352
353                                 // Update notes (these will be set as task text!)
354                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
355                                 break;
356
357                         case '0.3.0': // SQL queries for v0.3.0
358                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG}/Referal-Ebenen' WHERE `what`='config_points' LIMIT 1");
359                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mailverg&uuml;tungen...' WHERE `what`='payments' LIMIT 1");
360
361                                 // Update notes (these will be set as task text!)
362                                 setExtensionUpdateNotes("Zwei Men&uuml;punkte umbenannt.");
363                                 break;
364
365                         case '0.3.1': // SQL queries for v0.3.1
366                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD UNIQUE KEY `ext_name` (`ext_name`)");
367                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` ADD UNIQUE KEY `login` (`login`)");
368                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refbanner` ADD INDEX `visible` (`visible`)");
369                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` ADD UNIQUE KEY `level` (`level`)");
370                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD INDEX `level` (`level`)");
371                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` ADD INDEX `data_type` (`data_type`)");
372                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD UNIQUE KEY `module` (`module`)");
373                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `action` (`action`)");
374                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` ADD INDEX `what` (`what`)");
375                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_type` (`task_type`)");
376                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `status` (`status`)");
377                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `task_created` (`task_created`)");
378                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD FULLTEXT `subject` (`subject`)");
379                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX `subject` (`subject`)");
380                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD INDEX `ext_active` (`ext_active`)");
381                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `action` (`action`)");
382                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `what` (`what`)");
383                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `sort` (`sort`)");
384                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `visible` (`visible`)");
385                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` ADD INDEX `locked` (`locked`)");
386                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `what` (`what`)");
387                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `sort` (`sort`)");
388                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `visible` (`visible`)");
389                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` ADD INDEX `locked` (`locked`)");
390                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `visible` (`visible`)");
391                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_cats` ADD INDEX `sort` (`sort`)");
392
393                                 // Update notes (these will be set as task text!)
394                                 setExtensionUpdateNotes("Eindeutige Schl&uuml;ssel (UNIQUE KEY) und normale Schl&uuml;ssel (INDEX) gesetzt.");
395                                 break;
396
397                         case '0.3.2': // SQL queries for v0.3.2
398                                 // Connection table between the menu system and the "logical area" system
399                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las`');
400                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_admin_menu_las` (
401 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
402 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
403 `la_action` VARCHAR(255) NOT NULL DEFAULT '',
404 `la_what` VARCHAR(255) NOT NULL DEFAULT '',
405 INDEX (`la_id`),
406 INDEX (`la_action`),
407 INDEX (`la_what`),
408 PRIMARY KEY (`id`)
409 ) TYPE={?_TABLE_TYPE?}");
410                                 // All "logical areas" together
411                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_las_data`');
412                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_admin_menu_las_data` (
413 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
414 `la_id` VARCHAR(255) NOT NULL DEFAULT '',
415 `la_title` VARCHAR(255) NOT NULL DEFAULT '',
416 `la_posx` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
417 `la_posy` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
418 UNIQUE KEY (`la_id`),
419 INDEX (`la_posx`),
420 INDEX (`la_posy`),
421 PRIMARY KEY (`id`)
422 ) TYPE={?_TABLE_TYPE?}");
423                                 // Which menu do you like?
424                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `admin_menu` ENUM('NEW','OLD') NOT NULL DEFAULT 'OLD'");
425
426                                 // Insert menus
427                                 addAdminMenuSql('setup','config_admin','Adminmen&uuml;','Diverse Einstellungen am Adminmen&uuml; vornehmen.', 9);
428
429                                 // Update notes (these will be set as task text!)
430                                 setExtensionUpdateNotes("Logische Bereiche (Logical Areas = LAs) eingef&uuml;hrt. Dadurch wird das immer st&auml;rker anwachsende Admin-Men&uuml; in grosse Hauptgruppen unterteilt, wodurch ein Auffinden von Men&uuml;punkten verbessert wird.");
431                                 break;
432
433                         case '0.3.3': // SQL queries for v0.3.3
434                                 // Switch of the "intelligent menu sorter" when you want to have a fixed menu structure...
435                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `admin_menu_sorter` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
436
437                                 // The statistics table
438                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admin_menu_stats`');
439                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_admin_menu_stats` (
440 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
441 `admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
442 `type` ENUM('la','action','what') NOT NULL DEFAULT 'what',
443 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
444 INDEX (`admin_id`),
445 PRIMARY KEY (`id`)
446 ) TYPE={?_TABLE_TYPE?}");
447
448                                 // Update notes (these will be set as task text!)
449                                 setExtensionUpdateNotes("Admin-abh&auml;ngig werden nun Klicks im Admin-Men&uuml; gez&auml;hlt, die zur automatischen Anpassung des Men&uuml;s in den logischen Bereichen diennen. Dieses &quot;intelligente Unbauen&quot; k&ouml;nnen Sie auch ganz abschalten.");
450                                 break;
451
452                         case '0.3.4': // SQL queries for v0.3.4
453                                 // Update notes (these will be set as task text!)
454                                 setExtensionUpdateNotes("Veraltetes Update (what=list_user&amp;mode=noref)");
455                                 break;
456
457                         case '0.3.5': // SQL queries for v0.3.5
458                                 // List accounts with no referal
459                                 addMemberMenuSql('stats',NULL,'Statistiken','Y','N',4);
460                                 addMemberMenuSql('stats','stats2','Framekiller-Mails','Y','N',2);
461                                 addMemberMenuSql('extras',NULL,'Extras','Y','N',5);
462                                 addMemberMenuSql('rals',NULL,'Rallyes','Y','N',6);
463                                 addMemberMenuSql('account',NULL,'Ihr Account','Y','N',7);
464                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='stats', `sort`=1, `title`='Klick-Mails' WHERE `what`='stats' LIMIT 1");
465                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras', `sort`=3 WHERE `what`='reflinks' LIMIT 1");
466
467                                 // Update notes (these will be set as task text!)
468                                 setExtensionUpdateNotes("Mitgliedsmen&uuml; komplett umgebaut.");
469                                 break;
470
471                         case '0.3.6': // SQL queries for v0.3.6
472                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `salt_length` TINYINT(3) UNSIGNED NOT NULL DEFAULT 9");
473                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `pass_scramble` VARCHAR(255) NOT NULL DEFAULT ''");
474                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` MODIFY `password` VARCHAR(255) NOT NULL DEFAULT ''");
475                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `rand_no` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
476                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `file_hash` VARCHAR(255) NOT NULL DEFAULT ''");
477                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `master_salt` VARCHAR(255) NOT NULL DEFAULT ''");
478                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_config` SET `rand_no`=(ROUND(RAND() * 99999) + 100000) WHERE `config`=0 LIMIT 1");
479                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_mod_reg` ADD `has_menu` ENUM('Y','N') NOT NULL DEFAULT 'N'");
480                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `has_menu`='Y' WHERE `module`='admin' OR `module`='index' OR `module`='login' LIMIT 3");
481
482                                 // Update notes (these will be set as task text!)
483                                 setExtensionUpdateNotes("Passwort-System mit Zufallshash erweitert (Schutzt gegen Dictionary-Attacks!)");
484                                 break;
485
486                         case '0.3.7': // SQL queries for v0.3.7
487                                 setExtensionUpdateNotes("Problem w&auml;hrend des Installationsvorganges behoben.");
488                                 break;
489
490                         case '0.3.8': // SQL queries for v0.3.8
491                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `descr` `descr` MEDIUMTEXT NULL");
492                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_pool` CHANGE `text` `text` LONGTEXT NOT NULL");
493
494                                 // Update notes (these will be set as task text!)
495                                 setExtensionUpdateNotes("Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.");
496                                 break;
497
498                         case '0.3.9': // SQL queries for v0.3.9
499                                 // Update notes (these will be set as task text!)
500                                 setExtensionUpdateNotes("Beschreibungstexte f&uuml;r Admin-Men&uuml;s k&ouml;nnen l&auml;nger sein. Diverse Fixes.");
501                                 break;
502
503                         case '0.4.0': // SQL queries for v0.4.0
504                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Email-Management' WHERE `action` = 'email' AND (`what`='' OR `what` IS NULL) LIMIT 1");
505
506                                 // Update notes (these will be set as task text!)
507                                 setExtensionUpdateNotes("Email-Verwaltung nach Email-Management umbenannt.");
508                                 break;
509
510                         case '0.4.1': // SQL queries for v0.4.1
511                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `show_timings` ENUM ('Y','N') NOT NULL DEFAULT 'Y'");
512
513                                 // Update notes (these will be set as task text!)
514                                 setExtensionUpdateNotes("Tabellen-Schl&uuml;ssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.");
515                                 break;
516
517                         case '0.4.2': // SQL queries for v0.4.2
518                                 // Update notes (these will be set as task text!)
519                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
520                                 break;
521
522                         case '0.4.3': // SQL queries for v0.4.3
523                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_host` VARCHAR(255) NOT NULL DEFAULT ''");
524                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_port` INT(5) UNSIGNED NOT NULL DEFAULT 0");
525                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_username` VARCHAR(255) NOT NULL DEFAULT ''");
526                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `proxy_password` VARCHAR(255) NOT NULL DEFAULT ''");
527                                 addAdminMenuSql('setup','config_proxy','Proxy-Einstellungen','Sollte Ihr Webserver sich hinter einem Proxy befinden, so k&ouml;nnen Sie Ihren {?mt_word?} so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15);
528
529                                 // Update notes (these will be set as task text!)
530                                 setExtensionUpdateNotes("Proxy-Einstellungen hinzugef&uuml;gt.");
531                                 break;
532
533                         case '0.4.4': // SQL queries for v0.4.4
534                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
535                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
536                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL");
537                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`=NULL WHERE `what`=''");
538                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `what`=NULL WHERE `what`=''");
539                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `what`=NULL WHERE `what`=''");
540
541                                 // Make this depending on ext-menu
542                                 addExtensionUpdateDependency('menu');
543
544                                 // Update notes (these will be set as task text!)
545                                 setExtensionUpdateNotes("Schl&uuml;ssel in Admin-, Gast- und Mitgliedsmen&uuml; verbessert.");
546                                 break;
547
548                         case '0.4.5': // SQL queries for v0.4.5
549                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `last_month` CHAR(2) NOT NULL DEFAULT '00'");
550                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `last_week` CHAR(2) NOT NULL DEFAULT '00'");
551
552                                 // Update notes (these will be set as task text!)
553                                 setExtensionUpdateNotes("T&auml;glichen/w&ouml;chentlichen/monatlichen Reset verbessert.");
554                                 break;
555
556                         case '0.4.6': // SQL queries for v0.4.6
557                                 // Update notes (these will be set as task text!)
558                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
559                                 break;
560
561                         case '0.4.7': // SQL queries for v0.4.7
562                                 // Update notes (these will be set as task text!)
563                                 setExtensionUpdateNotes("Veraltetes Update.");
564                                 break;
565
566                         case '0.4.8': // SQL queries for v0.4.8
567                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_task_system` ADD INDEX (`subject`)");
568
569                                 // Update notes (these will be set as task text!)
570                                 setExtensionUpdateNotes("Index f&uuml;r Betreff eingef&uuml;gt.");
571                                 break;
572
573                         case '0.4.9': // SQL queries for v0.4.9
574                                 // Update notes (these will be set as task text!)
575                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
576                                 break;
577
578                         case '0.5.0': // SQL queries for v0.5.0
579                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `level`");
580                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` DROP INDEX `userid`");
581                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refsystem` ADD UNIQUE `userid_level` (`userid`,`level`)");
582
583                                 // Update notes (these will be set as task text!)
584                                 setExtensionUpdateNotes("Referal-System unterst&uuml;tzt nun detailierte Referal-&Uuml;bersicht und vieles mehr.");
585                                 break;
586
587                         case '0.5.1': // SQL queries for v0.5.1
588                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu` DROP `descr`");
589
590                                 // Update notes (these will be set as task text!)
591                                 setExtensionUpdateNotes("Beschreibungsspalte von Mitgliedsmen&uuml; entfernt, welche ohnehin nicht genutzt wird.");
592                                 break;
593
594                         case '0.5.2': // SQL queries for v0.5.2
595                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_refdepths` CHANGE `percents` `percents` FLOAT(8,5) UNSIGNED NOT NULL DEFAULT 0.00000");
596
597                                 // Update notes (these will be set as task text!)
598                                 setExtensionUpdateNotes("Prozents&auml;tze k&ouml;nnen nun f&uuml;nf Stelle hinter dem Komma sein.");
599                                 break;
600
601                         case '0.5.3': // SQL queries for v0.5.3
602                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `session_save_path` VARCHAR(255) NOT NULL DEFAULT ''");
603                                 addAdminMenuSql('setup','config_session','Session-Einstellungen','&Auml;ndern Sie hier den Speicherpfad f&uuml;r Sessiondateien (Sitzungsdateien) ab, falls die Standart-Einstellung bei Ihrem Hoster zu Problem f&uuml;hren sollte.', 16);
604
605                                 // Update notes (these will be set as task text!)
606                                 setExtensionUpdateNotes("Session-Speicherpfad konfigurierbar. Beispielsweise ist dies bei all-inkl.com n&ouml;tig.");
607                                 break;
608
609                         case '0.5.4': // SQL queries for v0.5.4
610                                 addMemberMenuSql('main','reflist','Ref-&Uuml;bersicht','N','Y',5);
611
612                                 // Depends on refback extension
613                                 addExtensionUpdateDependency('refback');
614
615                                 // Update notes (these will be set as task text!)
616                                 setExtensionUpdateNotes("Ref-&Uuml;bersicht eingebaut. Diese h&auml;ngt von der Erweiterung <strong>refback</strong> ab.");
617                                 break;
618
619                         case '0.5.5': // SQL queries for v0.5.5
620                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `show_points_unconfirmed` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
621
622                                 // Update notes (these will be set as task text!)
623                                 setExtensionUpdateNotes("Anzeige der {?POINTS?} unter den unbest&auml;tigten Mails kann nun optional abgeschaltet werden.");
624                                 break;
625
626                         case '0.5.6': // SQL queries for v0.5.6
627                                 // Update notes (these will be set as task text!)
628                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
629                                 break;
630
631                         case '0.5.7': // SQL queries for v0.5.7
632                                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_norefs' LIMIT 1");
633
634                                 // Update notes (these will be set as task text!)
635                                 setExtensionUpdateNotes("Auflistung der Mitglieder ohne Werber nach what=list_user&amp;mode=norefs verschoben.");
636                                 break;
637
638                         case '0.5.8': // SQL queries for v0.5.8
639                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` DROP `ext_lang_file`");
640
641                                 // Update notes (these will be set as task text!)
642                                 setExtensionUpdateNotes("Sprachdateinamen werden nicht mehr in der Datenbank behalten.");
643                                 break;
644
645                         case '0.5.9': // SQL queries for v0.5.9
646                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_filters`');
647                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_filters` (
648 `filter_id` BIGINT(20) UNSIGNED AUTO_INCREMENT,
649 `filter_name` VARCHAR(255) NOT NULL DEFAULT '',
650 `filter_function` VARCHAR(255) NOT NULL DEFAULT '',
651 `filter_active` ENUM('N','Y') NOT NULL DEFAULT 'Y',
652 `filter_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
653 UNIQUE `name_function` (`filter_name` , `filter_function`),
654 PRIMARY KEY (`filter_id`)
655 ) TYPE={?_TABLE_TYPE?} COMMENT='Filter system'");
656                                 addAdminMenuSql('setup','list_filter','Filter-Management', 'Zeigt alle im System registrierten Filter an und l&auml;sst diese de- bzw. wieder aktivieren.', 17);
657
658                                 // Update notes (these will be set as task text!)
659                                 setExtensionUpdateNotes("Tabellen f&uuml;r Filter-System hinzugef&uuml;gt.");
660                                 break;
661
662                         case '0.6.0': // SQL queries for v0.6.0
663                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `update_filter_usage` ENUM('N','Y') NOT NULL DEFAULT 'N'");
664
665                                 // Update notes (these will be set as task text!)
666                                 setExtensionUpdateNotes("Benutzungsstatistik eingebaut. Das Z&auml;hlen der Filterverwendungen sollte <strong>ausschliesslich</strong> zu Debugging-Zwecken eingesetzt werden.");
667                                 break;
668
669                         case '0.6.1': // SQL queries for v0.6.1
670                                 // Update notes (these will be set as task text!)
671                                 setExtensionUpdateNotes("Nicht mehr g&uuml;ltiges Update.");
672                                 break;
673
674                         case '0.6.2': // SQL queries for v0.6.2
675                                 // Depends on refback extension
676                                 addExtensionUpdateDependency('user');
677
678                                 // Update notes (these will be set as task text!)
679                                 setExtensionUpdateNotes("Abh&auml;ngigkeit von <u>ext-user</u> gesetzt.");
680                                 break;
681
682                         case '0.6.3': // SQL queries for v0.6.3
683                                 // Update notes (these will be set as task text!)
684                                 setExtensionUpdateNotes("Filter-Tabelle bereinigt um doppelte Eintr&auml;ge und Unique-Key auf <em>filter_name</em> und <em>filter_function</em> zusammen gesetzt.");
685
686                                 // Add special fix include to fix filters
687                                 addIncludeToPool('extension', 'inc/fix_filters.php');
688                                 break;
689
690                         case '0.6.4': // SQL queries for v0.6.4
691                                 // Update admin menu
692                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
693                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_admin_menu` SET `descr` = REPLACE(`descr`, '!POINTS!', '?POINTS?') WHERE `descr` LIKE '%!POINTS!%'");
694                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_guest_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
695                                 addExtensionSql("UPDATE  `{?_MYSQL_PREFIX?}_member_menu` SET `title` = REPLACE(`title`, '!POINTS!', '?POINTS?') WHERE `title` LIKE '%!POINTS!%'");
696
697                                 // Update notes (these will be set as task text!)
698                                 setExtensionUpdateNotes("Datenbank umgestellt auf Konfigurationselemente.");
699                                 break;
700
701                         case '0.6.5': // SQL queries for v0.6.5
702                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `css_php` `css_php` ENUM('DIRECT','FILE','INLINE') NOT NULL DEFAULT 'FILE'");
703
704                                 // Update notes (these will be set as task text!)
705                                 setExtensionUpdateNotes("Ausgabe der CSS-Dateien entweder per css.php oder sie sind direkt eingebunden.");
706                                 break;
707
708                         case '0.6.6': // SQL queries for v0.6.6
709                                 addAdminMenuSql('setup','config_secure','Sicherheitseinstellungen','Stellen Sie ein, wie lange das Passwort eines Mitgliedes mindestens sein muss uvm.',9);
710                                 addAdminMenuSql('setup','config_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG}','Stellen Sie hier die Willkommensgutschrift, Referal-Gutschrift (einmalige) usw. ein.',10);
711                                 addAdminMenuSql('email','email_archiv','E-Mail Archiv','Sehen Sie sich hier bereits gesendete Mails an.',6);
712
713                                 // Update notes (these will be set as task text!)
714                                 setExtensionUpdateNotes("Die Sicherheitseinstellungen, {?POINTS?}-Einstellungen und Email-Archiv funktionieren nur, wenn diese Erweiterung installiert ist.");
715                                 break;
716
717                         case '0.6.7': // SQL queries for v0.6.7
718                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `index_delay` `index_delay` TINYINT(3) NOT NULL DEFAULT 0");
719                                 // Update notes (these will be set as task text!)
720                                 setExtensionUpdateNotes("Die Weiterleitungseinstellung muss auch Werte kleiner Null akzeptieren.");
721                                 break;
722
723                         case '0.6.8': // SQL queries for v0.6.8
724                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_admin_menu`
725 CHANGE `action` `action` VARCHAR(50) NOT NULL,
726 CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
727                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_guest_menu`
728 CHANGE `action` `action` VARCHAR(50) NOT NULL,
729 CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
730                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_member_menu`
731 CHANGE `action` `action` VARCHAR(50) NOT NULL,
732 CHANGE `what` `what` VARCHAR(50) NULL DEFAULT NULL');
733
734                                 // Update notes (these will be set as task text!)
735                                 setExtensionUpdateNotes("Spalten verk&uuml;rzt, damit die Schl&uuml;ssel passen.");
736                                 break;
737
738                         case '0.6.9': // SQL queries for 0.6.9
739                                 // Register filter
740                                 registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, getExtensionDryRun());
741
742                                 // Update notes (these will be set as task text!)
743                                 setExtensionUpdateNotes("Filter zum Zur&uuml;cksetzens des fehlgeschlagenen Mitgliederlogins hinzugef&uuml;gt (internes TODO).");
744                                 break;
745
746                         case '0.7.0': // SQL queries for 0.7.0
747                                 // Table definition
748                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_dns_cache`');
749                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_dns_cache` (
750 `hostname` VARCHAR(255) NOT NULL,
751 `ip` VARCHAR(15) NOT NULL,
752 `added` DATETIME NOT NULL,
753 PRIMARY KEY (`hostname`),
754 INDEX (`ip`)
755 ) ENGINE={?_TABLE_TYPE?}");
756
757                                 // Configuration
758                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `dns_cache_timeout` BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
759
760                                 // Register filter
761                                 registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, getExtensionDryRun());
762
763                                 // Update notes (these will be set as task text!)
764                                 setExtensionUpdateNotes("IP-Resolver-Klasse hinzugef&uuml;gt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
765                                 break;
766                 } // END - switch
767                 break;
768
769         case 'modify': // When the extension got modified
770                 break;
771
772         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
773                 break;
774
775         case 'init': // Do stuff when extension is initialized
776                 // Init key
777                 setConfigEntry('secret_key', '');
778
779                 // Read key from secret file
780                 if ((getConfig('file_hash') == '') || (getConfig('master_salt') == '') || (getConfig('pass_scramble') == '')) {
781                         // Cache instance
782                         // Maybe need setup of secret key!
783                         loadIncludeOnce('inc/gen_sql_patches.php');
784
785                         // @TODO Rewrite this to a filter
786                         if ((isExtensionInstalledAndNewer('cache', '0.1.2')) && (isCacheInstanceValid())) {
787                                 // Destroy some cache files
788                                 if ($GLOBALS['cache_instance']->loadCacheFile('config'))    $GLOBALS['cache_instance']->removeCacheFile();
789                                 if ($GLOBALS['cache_instance']->loadCacheFile('extension')) $GLOBALS['cache_instance']->removeCacheFile();
790                                 if ($GLOBALS['cache_instance']->loadCacheFile('modules'))   $GLOBALS['cache_instance']->removeCacheFile();
791                         } // END - if
792                 } // END - if
793
794                 // Test again
795                 if ((getConfig('file_hash') != '') && (getConfig('master_salt') != '') && (getConfig('pass_scramble') != '')) {
796                         // File hash fas generated so we can also file the secret file... hopefully.
797                         $hashFile = sprintf("%sinc/.secret/.%s", getConfig('PATH'), getConfig('file_hash'));
798                         if (isFileReadable($hashFile)) {
799                                 // Read file
800                                 setConfigEntry('secret_key', readFromFile($hashFile));
801                         } else {
802                                 // Remove it from database
803                                 updateConfiguration('file_hash', '');
804
805                                 // Cannot read secret file!
806                                 app_die(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
807                         }
808                 } // END - if
809
810                 // Transfer words/numbers to constants
811                 setConfigEntry('POINTS', getConfig('points_word'));
812                 break;
813
814         default: // Unknown extension mode
815                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
816                 break;
817 } // END - switch
818
819 // [EOF]
820 ?>