Heacy rewrite/cleanup:
[mailer.git] / inc / extensions / user / mode-update.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 01/14/2013 *
4  * ===================                          Last change: 01/14/2013 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : mode-update.php                                  *
8  * -------------------------------------------------------------------- *
9  * Short description : Steps for updates on ext-user                    *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Schritte fuer Updates fuer ext-user              *
12  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
17  * -------------------------------------------------------------------- *
18  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
19  * Copyright (c) 2009 - 2013 by Mailer Developer Team                   *
20  * For more information visit: http://mxchange.org                      *
21  *                                                                      *
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.                                  *
26  *                                                                      *
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.                         *
31  *                                                                      *
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,               *
35  * MA  02110-1301  USA                                                  *
36  ************************************************************************/
37
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
40         die();
41 } // END - if
42
43 // @TODO Remove double tabs from all lines
44                 switch (getCurrentExtensionVersion()) {
45                         case '0.1.0': // SQL queries for v0.1
46                                 addConfigAddSql('user_limit', 'INT(7) UNSIGNED NOT NULL DEFAULT 20');
47
48                                 // Update notes (these will be set as task text!)
49                                 setExtensionUpdateNotes("Seitenweises Anzeigen der User-Liste ist nun m&ouml;glich.");
50                                 break;
51
52                         case '0.1.1': // SQL queries for v0.1.1
53                                 // Update notes (these will be set as task text!)
54                                 setExtensionUpdateNotes("Ung&uuml;ltiges Update.");
55                                 break;
56
57                         case '0.1.2': // SQL queries for v0.1.2
58                                 addExtensionAddTableColumnSql('user_data', 'mails_confirmed', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
59
60                                 // Update notes (these will be set as task text!)
61                                 setExtensionUpdateNotes("Dem Mitglied wird nun angezeigt, wie viele Mails er best&auml;tigt hat. Alle vor dieser Version best. Mails werden leider nicht mehr ber&uuml;cksichtigt! Bitte teilen Sie dies Ihren Mitgliedern mit.");
62                                 break;
63
64                         case '0.1.3': // SQL queries for v0.1.3
65                                 // Update notes (these will be set as task text!)
66                                 setExtensionUpdateNotes("Den Pfad <span class=\"bad\">Sie sind hier</span> im Men&uuml;punkt <u>Online-Liste</u> erweitert.");
67                                 break;
68
69                         case '0.1.4': // SQL queries for v0.1.4
70                                 addExtensionAddTableColumnSql('user_data', 'emails_received', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
71
72                                 // Update notes (these will be set as task text!)
73                                 setExtensionUpdateNotes("Anzahl empfangener Mails wird angezeigt. <big>Diese Anzeige kann fehlerhaft sein, wenn Sie bereits Mitglieder in Ihrem {?mt_word?} haben sollen!</big>");
74                                 break;
75
76                         case '0.1.5': // SQL queries for v0.1.5
77                                 // Update notes (these will be set as task text!)
78                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
79                                 break;
80
81                         case '0.1.6': // SQL queries for v0.1.6
82                                 // Update notes (these will be set as task text!)
83                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
84                                 break;
85
86                         case '0.1.7': // SQL queries for v0.1.7
87                                 // Update notes (these will be set as task text!)
88                                 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
89                                 break;
90
91                         case '0.1.8': // SQL queries for v0.1.8
92                                 // Update notes (these will be set as task text!)
93                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
94                                 break;
95
96                         case '0.1.9': // SQL queries for v0.1.9
97                                 // Update notes (these will be set as task text!)
98                                 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
99                                 break;
100
101                         case '0.2.0': // SQL queries for v0.2.0
102                                 // Update notes (these will be set as task text!)
103                                 setExtensionUpdateNotes("User-Liste ausgelagert in Templates und &uuml;berbreite Zeile in 2er-Zeile umgewandelt.");
104                                 break;
105
106                         case '0.2.1': // SQL queries for v0.2.1
107                                 addConfigAddSql('user_alpha', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
108                                 addAdminMenuSql('setup','config_user','Mitgliederliste','Anzahl Mitglieder pro Seite, Anzahl Buchstaben pro Zeile usw.', 8);
109
110                                 // Update notes (these will be set as task text!)
111                                 setExtensionUpdateNotes("User-Liste ist konfigurierbar: Anzahl Mitglieder pro Seite und Anzahl Buchstaben pro Zeile; Template-Fehler beseitigt.");
112                                 break;
113
114                         case '0.2.2': // SQL queries for v0.2.2
115                                 addExtensionChangeTableColumnSql('user_data', 'gender', 'gender', "ENUM('M','F','C') NOT NULL DEFAULT 'M'");
116
117                                 // Update notes (these will be set as task text!)
118                                 setExtensionUpdateNotes("Anrede &quot;Firma&quot; hinzugef&uuml;gt.");
119                                 break;
120
121                         case '0.2.3': // SQL queries for v0.2.3
122                                 // Update notes (these will be set as task text!)
123                                 setExtensionUpdateNotes("Datumsformat festgelegt auf ausf&uuml;hrlich.");
124                                 break;
125
126                         case '0.2.4': // SQL queries for v0.2.4
127                                 // Update notes (these will be set as task text!)
128                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
129                                 break;
130
131                         case '0.2.5': // SQL queries for v0.2.5
132                                 // Update notes (these will be set as task text!)
133                                 setExtensionUpdateNotes("SQL-Anweisungen abgesichert.");
134                                 break;
135
136                         case '0.2.6': // SQL queries for v0.2.6
137                                 // Update notes (these will be set as task text!)
138                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
139                                 break;
140
141                         case '0.2.7': // SQL queries for v0.2.7
142                                 // Update notes (these will be set as task text!)
143                                 setExtensionUpdateNotes("Sicherheitsupdate f&uuml;r die Include-Befehle.");
144                                 break;
145
146                         case '0.2.8': // SQL queries for v0.2.8
147                                 // Update notes (these will be set as task text!)
148                                 setExtensionUpdateNotes("if-Anweisungen auf Funktion <strong>empty()</strong> umgestellt.");
149                                 break;
150
151                         case '0.2.9': // SQL queries for v0.2.9
152                                 addAdminMenuSql('user','user_contct','Mitglied kontaktieren','Kontaktieren Sie hier Ihre Mitglieder ganz direkt &uuml;ber ein Webformular. Sie brauchen somit kein EMail-Programm mehr starten!', 8);
153
154                                 // Update notes (these will be set as task text!)
155                                 setExtensionUpdateNotes("Admin-Kontaktformular hinzugef&uuml;gt.");
156                                 break;
157
158                         case '0.3.0': // SQL queries for v0.3.0
159                                 // Update notes (these will be set as task text!)
160                                 setExtensionUpdateNotes("Hash-Erstellung von <strong>md5()</strong> auf bessere Funktion <strong>generateHash()</strong> umgestellt.<br />Diverse Fixes f&uuml;r <span class=\"bad\">0.2.1-Beta1</span> Release.");
161                                 break;
162
163                         case '0.3.1': // SQL queries for v0.3.1
164                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Mitglieder-Management' WHERE `action`='user' AND (`what`='' OR `what` IS NULL) LIMIT 1");
165
166                                 // Update notes (these will be set as task text!)
167                                 setExtensionUpdateNotes("Verwaltung auf Management umgestellt");
168                                 break;
169
170                         case '0.3.2': // SQL queries for v0.3.2
171                                 // Update notes (these will be set as task text!)
172                                 setExtensionUpdateNotes("PHP-Hinweis in Userauflistung gefixt (trat bei fehlender Erweiterung <span class=\"data\">ext-nickname</span> auf) und Darstellungsfehler von <strong>0.00000</strong> unbest&auml;tigten Mails gefixt.");
173                                 break;
174
175                         case '0.3.3': // SQL queries for v0.3.3
176                                 // Update notes (these will be set as task text!)
177                                 setExtensionUpdateNotes("Mitglieder sind nun per Formular kontaktierbar (es wird eine EMail versendet), gesperrte und best&auml;tigte Mitgliedaccounts sind seperat oder gemeinsam auflistbar (seperat nur mit der Erweiterung <span class=\"bad\">task</span>!)");
178                                 break;
179
180                         case '0.3.4': // SQL queries for v0.3.4
181                                 addConfigAddSql('select_user_zero_refid', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
182                                 addConfigAddSql('user_min_confirmed', 'SMALLINT(5) UNSIGNED NOT NULL DEFAULT 10');
183                                 addExtensionAddTableColumnSql('user_data', 'rand_confirmed', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
184
185                                 // Update notes (these will be set as task text!)
186                                 setExtensionUpdateNotes("Mitglieder werden per Zufall als Referral-Id ausgew&auml;hlt, die eine Mindestanzahl an best&auml;tigten Mails haben, wenn die Ref-Id 0 ist.");
187                                 break;
188
189                         case '0.3.5': // SQL queries for v0.3.5
190                                 addExtensionAddTableColumnSql('user_data', 'lock_reason', 'TINYTEXT');
191                                 addExtensionAddTableColumnSql('user_data', 'lock_timestamp', 'TIMESTAMP NULL DEFAULT NULL');
192                                 addConfigAddSql('user_delete_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 30));
193                                 addAdminMenuSql('user', 'list_user_del', 'L&ouml;schungen auflisten', 'Listet die L&ouml;schungen von Usern auf.', 9);
194                                 addDropTableSql('user_del');
195                                 addCreateTableSql('user_del', "
196 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
197 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
198 `email` VARCHAR(255) NOT NULL DEFAULT '',
199 `surname` VARCHAR(255) NOT NULL DEFAULT '',
200 `family` VARCHAR(255) NOT NULL DEFAULT '',
201 `joined` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
202 `last_online` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
203 `del_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
204 `del_reason` TINYTEXT NOT NULL,
205 PRIMARY KEY (`id`),
206 INDEX (`userid`)",
207                                         'List of deleted users');
208
209                                 // Update notes (these will be set as task text!)
210                                 setExtensionUpdateNotes("Der Sperrgrund wird nun mit abgespeichert und beim L&ouml;schen des Users mit ausgesendet.");
211                                 break;
212
213                         case '0.3.6': // SQL queries for v0.3.6
214                                 addExtensionDropTableIndexSql('user_cats', 'userid');
215                                 addExtensionAddTableUniqueSql('user_cats', 'userid_catid', '(`userid`, `cat_id`)');
216
217                                 // Update notes (these will be set as task text!)
218                                 setExtensionUpdateNotes("Der Sperrgrund wird nun mit abgespeichert und beim L&ouml;schen des Users mit ausgesendet.");
219                                 break;
220
221                         case '0.3.7': // SQL queries for v0.3.7
222                                 addExtensionChangeTableColumnSql('user_points', 'id', 'id', 'BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT');
223                                 addExtensionChangeTableColumnSql('user_points', 'userid', 'userid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
224                                 addExtensionChangeTableColumnSql('user_data', 'userid', 'userid', 'BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT');
225                                 addExtensionChangeTableColumnSql('user_del', 'userid', 'userid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
226                                 addExtensionChangeTableColumnSql('user_links', 'stats_id', 'stats_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
227                                 addExtensionChangeTableColumnSql('user_links', 'userid', 'userid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
228                                 addExtensionChangeTableColumnSql('user_points', 'userid', 'userid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
229                                 addExtensionChangeTableColumnSql('user_points', 'ref_depth', 'ref_depth', 'TINYINT(3) UNSIGNED NULL DEFAULT NULL');
230                                 addExtensionChangeTableColumnSql('user_stats', 'userid', 'userid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
231                                 addExtensionChangeTableColumnSql('user_stats', 'cat_id', 'cat_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
232                                 addExtensionChangeTableColumnSql('user_stats', 'payment_id', 'payment_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
233                                 addExtensionChangeTableColumnSql('user_stats', 'pool_id', 'pool_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
234                                 addExtensionChangeTableColumnSql('user_stats_data', 'userid', 'userid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
235
236                                 // Cleanup SQLs
237                                 addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid` IS NULL OR `cat_id` IS NULL');
238                                 addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_del` WHERE `userid` IS NULL');
239                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_links` SET `stats_id`=NULL WHERE `stats_id`=0');
240                                 addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `userid` IS NULL');
241                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_points` SET `ref_depth`=NULL WHERE `ref_depth`=0');
242                                 addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_points` WHERE `userid` IS NULL');
243                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `cat_id`=NULL WHERE `cat_id`=0');
244                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `payment_id`=NULL WHERE `payment_id`=0');
245                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `pool_id`=NULL WHERE `pool_id`=0');
246                                 addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `userid` IS NULL');
247
248                                 // Update notes (these will be set as task text!)
249                                 setExtensionUpdateNotes("NULL ist wichtiger als 0 und UNSIGNED auch.");
250                                 break;
251
252                         case '0.3.8': // SQL queries for v0.3.8
253                                 addExtensionChangeTableColumnSql('user_data', 'last_failure', 'last_failure', 'TIMESTAMP NULL DEFAULT NULL');
254
255                                 // Update notes (these will be set as task text!)
256                                 setExtensionUpdateNotes("Ausgangswert ist nicht mehr 0000-00-00 00:00:00, sondern einfach NULL.");
257                                 break;
258
259                         case '0.3.9': // SQL queries for v0.3.9
260                                 // Update notes (these will be set as task text!)
261                                 setExtensionUpdateNotes("Update verschoben nach ext-order (da es Werbeguthaben ist und nichts mit dem Mitglied selbst zu tun hat).");
262                                 break;
263
264                         case '0.4.0': // SQL queries for v0.4.0
265                                 // Register new filters for gathering points
266                                 registerFilter(__FILE__, __LINE__, 'get_total_points', 'USER_POINTS', FALSE, TRUE, isExtensionDryRun());
267                                 registerFilter(__FILE__, __LINE__, 'get_own_points', 'USER_POINTS', FALSE, TRUE, isExtensionDryRun());
268
269                                 // Update notes (these will be set as task text!)
270                                 setExtensionUpdateNotes("Filter registriert, die das eigene {?POINTS?}-Guthaben des Mitgliedes zur&uuml;ckliefern.");
271                                 break;
272
273                         case '0.4.1': // SQL queries for v0.4.1
274                                 // Add special fix include to fix filters
275                                 addIncludeToPool('extension', 'inc/fix_user_points.php');
276
277                                 // Update notes (these will be set as task text!)
278                                 setExtensionUpdateNotes("Das Mitgliederguthaben musste repariert werden, da f&uuml;r Referral-Ebene 0, noch NULL geschrieben wurde.");
279                                 break;
280
281                         case '0.4.2': // SQL queries for v0.4.2
282                                 // Add special fix include to fix filters
283                                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='chk_regs' LIMIT 1");
284
285                                 // Update notes (these will be set as task text!)
286                                 setExtensionUpdateNotes("&Uuml;berfl&uuml;ssiges Men&uuml; <strong>chk_regs</strong> entfernt, dies kann mit <strong>list_user</strong> &uuml;bernommen werden.");
287                                 break;
288
289                         case '0.4.3': // SQL queries for v0.4.3
290                                 // Add special fix include to fix filters
291                                 addExtensionChangeTableColumnSql('user_data', 'refid', 'refid', 'BIGINT(20) NULL DEFAULT NULL');
292
293                                 // Update notes (these will be set as task text!)
294                                 setExtensionUpdateNotes("&Uuml;berfl&uuml;ssiges Men&uuml; <strong>chk_regs</strong> entfernt, dies kann mit <strong>list_user</strong> &uuml;bernommen werden.");
295                                 break;
296
297                         case '0.4.4': // SQL queries for v0.4.4
298                                 addDropTableSql('user_refs');
299                                 addCreateTableSql('user_refs', "
300 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
301 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
302 `level` smallINT(6) UNSIGNED NOT NULL DEFAULT 0,
303 `refid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
304 PRIMARY KEY (`id`),
305 UNIQUE `user_refid` (`userid`, `level`, `refid`),
306 INDEX (`level`),
307 INDEX (`refid`)",
308                                         'User referrals');
309
310                                 // Load ext-refback's special include to regenerate the referral table
311                                 addIncludeToPool('extension', 'inc/fix_refsystem.php');
312
313                                 // Update notes (these will be set as task text!)
314                                 setExtensionUpdateNotes("Neues Tabellenlayout und verschoben von ext-refback.");
315                                 break;
316
317                         case '0.4.5': // SQL queries for v0.4.5
318                                 addExtensionChangeTableColumnSql('user_links', 'link_type', 'link_type', "VARCHAR(255) NOT NULL DEFAULT 'NORMAL'");
319
320                                 // Update notes (these will be set as task text!)
321                                 setExtensionUpdateNotes("Die Spalte <strong>link_type</strong> ist nun kein ENUM mehr, um weitere Mailtypen zu erlauben.");
322                                 break;
323
324                         case '0.4.6': // SQL queries for v0.4.6
325                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben' WHERE `what` = 'add_points' LIMIT 1");
326                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='{OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen' WHERE `what` = 'sub_points' LIMIT 1");
327                                 addAdminMenuSql('user','sub_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen','Allen oder einem Mitglied {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abziehen.', 8);
328
329                                 // This update depends on ext-menu update
330                                 addExtensionDependency('menu');
331
332                                 // Update notes (these will be set as task text!)
333                                 setExtensionUpdateNotes("Abzug von {?POINTS?} sollte nun dabei sein und Hinzuf&uuml;gen gefixt (war zu kurze Spalte).");
334                                 break;
335
336                         case '0.4.7': // SQL queries for v0.4.7
337                                 addExtensionChangeTableColumnSql('user_data', 'lock_timestamp', 'lock_timestamp', 'TIMESTAMP NULL DEFAULT NULL');
338                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `lock_timestamp`=NULL WHERE `lock_timestamp`='0000-00-00 00:00:00'");
339
340                                 // Update notes (these will be set as task text!)
341                                 setExtensionUpdateNotes("0000-00-00  00:00:00 ist kein Standardwert mehr, NULL ist dies.");
342                                 break;
343
344                         case '0.4.8': // SQL queries for v0.4.8
345                                 // Update notes (these will be set as task text!)
346                                 setExtensionUpdateNotes("Dieses Update ist nicht mehr g&uuml;ltig.");
347                                 break;
348
349                         case '0.4.9': // SQL queries for v0.4.9
350                                 addExtensionChangeTableColumnSql('user_data', 'last_module', 'last_what', 'VARCHAR(255) NULL DEFAULT NULL');
351
352                                 // Register filter locked points
353                                 registerFilter(__FILE__, __LINE__, 'get_locked_points', 'LOCKED_USER_POINTS', FALSE, TRUE, isExtensionDryRun());
354
355                                 // Register filter for all column names
356                                 registerFilter(__FILE__, __LINE__, 'get_all_point_columns', 'GET_ALL_USER_POINTS_COLUMN_NAMES', FALSE, TRUE, isExtensionDryRun());
357
358                                 // Update notes (these will be set as task text!)
359                                 setExtensionUpdateNotes("Die Spalte <strong>last_module</strong> ist nach <strong>last_what</strong> umbenannt und hat nun NULL als Ausgangswert und Filter f&uuml;r gesperrtes Guthaben hinzugef&uuml;gt.");
360                                 break;
361
362                         case '0.5.0': // SQL queries for v0.5.0
363                                 // Prefix for all test accounts
364                                 addConfigAddSql('tester_user_maximum', 'INT(5) UNSIGNED ZEROFILL NOT NULL DEFAULT 00999');
365                                 addConfigAddSql('tester_user_gender', "ENUM('M','F') NOT NULL DEFAULT 'M'");
366                                 addConfigAddSql('tester_user_surname_prefix', "VARCHAR(255) NOT NULL DEFAULT 'tester_'");
367                                 addConfigAddSql('tester_user_family', "VARCHAR(255) NOT NULL DEFAULT 'Testbenutzer'");
368                                 addConfigAddSql('tester_user_street_nr', "VARCHAR(255) NOT NULL DEFAULT 'Teststra&szlig;e 123'");
369                                 addConfigAddSql('tester_user_zip', 'INT(6) UNSIGNED NOT NULL DEFAULT 12345');
370                                 addConfigAddSql('tester_user_city', "VARCHAR(255) NOT NULL DEFAULT 'Teststadt'");
371                                 addConfigAddSql('tester_user_email', "VARCHAR(255) NOT NULL DEFAULT '{OPEN_CONFIG}WEBMASTER{CLOSE_CONFIG}'");
372                                 addConfigAddSql('tester_user_default_refid', 'BIGINT(20) NULL DEFAULT NULL');
373                                 addConfigAddSql('tester_user_password', "VARCHAR(255) NOT NULL DEFAULT ''");
374                                 addConfigAddSql('tester_user_check_cat', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
375
376                                 // Admin menu
377                                 addAdminMenuSql('user', 'add_tester_user', 'Testbenutzer anlegen', 'Es k&ouml;nnen hier bis zu 100 Testbenutzer angelegt werden. Diese haben als Vornamen immer den Pr&auml;fix <span class="data">{?tester_user_surname_prefix?}</span> und werden bei Null anfangend bis 99 hochgez&auml;lt.', 1);
378                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mitglieder auflisten' WHERE `what`='list_user' LIMIT 1");
379
380                                 // Change 'zip' to INT(6)
381                                 addExtensionChangeTableColumnSql('user_data', 'zip', 'zip', 'INT(6) NOT NULL DEFAULT 0');
382
383                                 // Register filter for WHERE/AND exclusion/inclusion statements
384                                 registerFilter(__FILE__, __LINE__, 'user_exclusion_sql', 'TESTER_USER_EXCLUSION_SQL', FALSE, TRUE, isExtensionDryRun());
385                                 registerFilter(__FILE__, __LINE__, 'user_inclusion_sql', 'TESTER_USER_INCLUSION_SQL', FALSE, TRUE, isExtensionDryRun());
386
387                                 // Update notes (these will be set as task text!)
388                                 setExtensionUpdateNotes("Es k&ouml;nnen nun Test-Benutzer angelegt werden. Noch m&uuml;ssen diese &uuml;berall ausgeschlossen werden, damit die Mediadaten nicht unn&ouml;tig verf&auml;lscht werden.");
389                                 break;
390
391                         case '0.5.1': // SQL queries for v0.5.1
392                                 // Register a filter
393                                 registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'TESTER_USER_REGISTRATION_ADD_SQL_COLUMNS', FALSE, TRUE, isExtensionDryRun());
394
395                                 // Update notes (these will be set as task text!)
396                                 setExtensionUpdateNotes("Filter zum Hinzuf&uuml;gen von SQL-Spalten f&uuml;r die Mitgliederanmeldung hinzugef&uuml;gt.");
397                                 break;
398
399                         case '0.5.2': // SQL queries for v0.5.2
400                                 // Register a filter
401                                 registerFilter(__FILE__, __LINE__, 'convert_user_data_columns', 'ADD_USER_DATA_CONVERT_SQL_COLUMNS', FALSE, TRUE, isExtensionDryRun());
402
403                                 // Update notes (these will be set as task text!)
404                                 setExtensionUpdateNotes("Filter zum Hinzuf&uuml;gen von SQL-Spalten f&uuml;r die Mitgliederanmeldung hinzugef&uuml;gt.");
405                                 break;
406
407                         case '0.5.3': // SQL queries for v0.5.3
408                                 // Register filter
409                                 registerFilter(__FILE__, __LINE__, 'post_refid_validation', 'HANDLE_USER_SUBID', FALSE, TRUE, isExtensionDryRun());
410                                 registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'SUBID_USER_REGISTRATION_ADD_SQL_COLUMNS', FALSE, TRUE, isExtensionDryRun());
411
412                                 // Admin menu
413                                 addAdminMenuSql('user', 'list_user_subid', 'Sub-Ids', 'Listet alle pro vom Mitglied eingegebenen Sub-Ids und ermittelten Referral-URLs auf.', 7);
414
415                                 // Member menu
416                                 addMemberMenuSql('extras', 'subids', 'Sub-Id Tracking', 4);
417
418                                 // Add table for subids
419                                 addDropTableSql('user_subids');
420                                 addCreateTableSql('user_subids', "
421 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
422 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
423 `subid` VARCHAR(255) NOT NULL DEFAULT '',
424 `subid_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
425 PRIMARY KEY (`id`),
426 UNIQUE `user_subid` (`userid`, `subid`),
427 INDEX (`subid`)",
428                                         'User sub ids');
429
430                                 // Add table for subid logging
431                                 addDropTableSql('subid_log');
432                                 addCreateTableSql('subid_log', "
433 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
434 `refid` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
435 `subid` VARCHAR(255) NOT NULL DEFAULT '',
436 `referral_url` TINYTEXT NOT NULL,
437 `remote_address` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
438 `entry_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
439 PRIMARY KEY (`id`),
440 INDEX (`refid`),
441 INDEX (`subid`)",
442                                         'Sub id logging');
443
444                                 // For saving used subid in user_data table
445                                 addExtensionAddTableColumnSql('user_data', 'subid', 'VARCHAR(255) NULL DEFAULT NULL');
446                                 addExtensionAddTableIndexSql('user_data', 'subid', '(`subid`)');
447
448                                 // Configuration entry for purging old subid logs (7 days default)
449                                 addConfigAddSql('user_subid_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
450
451                                 // Update notes (these will be set as task text!)
452                                 setExtensionUpdateNotes("Filter, Datenbanktabelle und Men&uuml;punkte f&uuml;r SubId-Tracking hinzugef&uuml;gt.");
453                                 break;
454
455                         case '0.5.4': // SQL queries for v0.5.4
456                                 // Register filter
457                                 registerFilter(__FILE__, __LINE__, 'update_referral_data', 'GENERIC_UPDATE_USER_REFERRAL', FALSE, TRUE, isExtensionDryRun());
458                                 registerFilter(__FILE__, __LINE__, 'update_referral_data', 'UPDATE_USER_SUBID', FALSE, TRUE, isExtensionDryRun());
459
460                                 // Add user agent
461                                 addExtensionAddTableColumnSql('subid_log', 'user_agent', 'TINYTEXT NOT NULL AFTER `remote_address`');
462
463                                 // Update notes (these will be set as task text!)
464                                 setExtensionUpdateNotes("Weitere Filter f&uuml;r Referral-Counter und Sub-Id hinzugef&uuml;gt.");
465                                 break;
466
467                         case '0.5.5': // SQL queries for v0.5.5
468                                 // Register filter
469                                 registerFilter(__FILE__, __LINE__, 'member_admin_actions', 'ADD_USER_SUBID_MEMBER_ACTION', FALSE, TRUE, isExtensionDryRun());
470
471                                 // Update notes (these will be set as task text!)
472                                 setExtensionUpdateNotes("Weiteren Filter f&uuml;r Mitglieder-Aktionen im Adminbereich hinzugef&uuml;gt.");
473                                 break;
474
475                         case '0.5.6': // SQL queries for v0.5.6
476                                 // Register filter
477                                 registerFilter(__FILE__, __LINE__, 'member_reflink_extra_content', 'MEMBER_REFLINK_USER_SUBIDS_CONTENT', FALSE, TRUE, isExtensionDryRun());
478
479                                 // Update notes (these will be set as task text!)
480                                 setExtensionUpdateNotes("Weiteren Filter f&uuml;r Mitglieder-Aktionen im Adminbereich hinzugef&uuml;gt.");
481                                 break;
482
483                         case '0.5.7': // SQL queries for v0.5.7
484                                 // Admin menu
485                                 addAdminMenuSql('user', 'list_user_amounts', 'Guthaben anzeigen', 'Listet alle Mitglieder und deren Guthaben inklusive Abzug auf.', 8);
486
487                                 // Update notes (these will be set as task text!)
488                                 setExtensionUpdateNotes("Men&uuml; zum Auflisten des Guthabens hinzugef&uuml;gt. Diese Daten sollen noch sp&auml;ter weiter verarbeitet werden. Zum Beispiel soll dann schnell feststellbar sein, welche Verdienstgruppe das meiste und wenigste {?POINTS?}-Volumen besitzt.");
489                                 break;
490
491                         case '0.5.8': // SQL queries for v0.5.8
492                                 addConfigAddSql('ap_subids', "ENUM('Y', 'N') NOT NULL DEFAULT 'Y'");
493                                 addConfigAddSql('ap_subids_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
494
495                                 // Admin menu
496                                 addAdminMenuSql('setup', 'config_user_subid', 'Sub-Id Tracking', '&Auml;ndern Sie hier alle Einstellungen zu den Sub-Ids.', 10);
497
498                                 // Update notes (these will be set as task text!)
499                                 setExtensionUpdateNotes("Bereinigung von Sub-Ids und deren Einstellungen hinzugef&uuml;gt.");
500                                 break;
501
502                         case '0.5.9': // SQL queries for v0.5.9
503                                 addExtensionChangeTableColumnSql('subid_log', 'refid', 'refid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
504                                 addExtensionChangeTableColumnSql('user_stats', 'cat_id', 'cat_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
505                                 addExtensionChangeTableColumnSql('user_stats', 'payment_id', 'payment_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
506                                 addExtensionChangeTableColumnSql('user_stats', 'pool_id', 'pool_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
507                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_subid_log` SET `refid`=NULL WHERE `refid`=0');
508                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `cat_id`=NULL WHERE `cat_id`=0');
509                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `payment_id`=NULL WHERE `payment_id`=0');
510                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `pool_id`=NULL WHERE `pool_id`=0');
511
512                                 // Update notes (these will be set as task text!)
513                                 setExtensionUpdateNotes("Besser NULL anstelle 0.");
514                                 break;
515
516                         case '0.6.0': // SQL queries for v0.6.0
517                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_user_cats' WHERE `action`='user' AND `what`='list_cats' LIMIT 1");
518
519                                 // Update notes (these will be set as task text!)
520                                 setExtensionUpdateNotes("Men&uuml;punkt umbenannt um Platz f&uuml;r Konflikt mit <strong>what-config_cats.php</strong> zu schaffen.");
521                                 break;
522                 } // END - switch
523
524 // [EOF]
525 ?>