Removed comment introduced by Profi-Concept, this comment should fine (in a much...
[mailer.git] / inc / extensions / ext-user.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 04/29/2004 *
4  * ===================                          Last change: 10/29/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-user.php                                     *
8  * -------------------------------------------------------------------- *
9  * Short description : Swapped out user management                      *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Ausgelagertes Mitglieder-Management              *
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, 2010 by Mailer Developer Team                    *
20  * For more information visit: http://www.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 // Version number
44 setThisExtensionVersion('0.3.5');
45
46 // Version history array (add more with , '0.1.0' and so on)
47 setExtensionVersionHistory(array('0.0', '0.1.0', '0.1.1', '0.1.2', '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'));
48
49 // Keep this extension always active!
50 setExtensionAlwaysActive('Y');
51
52 switch (getExtensionMode()) {
53         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
54                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_cats`');
55                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_cats` (
56   `id` BIGINT(22) NOT NULL AUTO_INCREMENT,
57   `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
58   `cat_id` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
59 PRIMARY KEY  (`id`),
60 INDEX (`userid`),
61 INDEX (`cat_id`)
62 ) TYPE={?_TABLE_TYPE?}");
63
64                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_data`');
65                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_data` (
66   `userid` BIGINT(22) NOT NULL AUTO_INCREMENT,
67   `surname` VARCHAR(255) NOT NULL DEFAULT '',
68   `family` VARCHAR(255) NOT NULL DEFAULT '',
69   `street_nr` VARCHAR(255) NOT NULL DEFAULT '',
70   `country` VARCHAR(4) NOT NULL DEFAULT '',
71   `zip` VARCHAR(6) NOT NULL DEFAULT '',
72   `city` VARCHAR(255) NOT NULL DEFAULT '',
73   `email` VARCHAR(255) NOT NULL DEFAULT '',
74   `birth_day` CHAR(2) NOT NULL DEFAULT '01',
75   `birth_month` CHAR(2) NOT NULL DEFAULT '01',
76   `birth_year` VARCHAR(4) NOT NULL DEFAULT '1970',
77   `password` VARCHAR(255) NOT NULL DEFAULT '',
78   `max_mails` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
79   `receive_mails` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
80   `refid` BIGINT(22) NOT NULL DEFAULT 0,
81   `status` ENUM('UNCONFIRMED','CONFIRMED','LOCKED') NOT NULL DEFAULT 'UNCONFIRMED',
82   `user_hash` VARCHAR(255) NULL DEFAULT NULL,
83   `REMOTE_ADDR` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
84   `last_online` VARCHAR(10) NOT NULL DEFAULT 0,
85   `last_module` VARCHAR(255) NOT NULL DEFAULT '',
86   `ref_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
87   `total_logins` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
88   `gender` ENUM('M','F') NOT NULL DEFAULT 'M',
89   `used_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
90   `emails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
91   `joined` VARCHAR(10) NOT NULL DEFAULT 0,
92   `last_update` VARCHAR(10) NOT NULL DEFAULT 0,
93   `last_profile_sent` VARCHAR(10) NOT NULL DEFAULT 0,
94   `notified` ENUM('Y','N') NOT NULL DEFAULT 'N',
95   `ref_payout` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
96   `last_login` VARCHAR(10) NOT NULL DEFAULT 0,
97   `login_failures` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
98   `last_failure` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
99 PRIMARY KEY  (`userid`),
100 UNIQUE (`user_hash`),
101 INDEX (`refid`),
102 INDEX `status_mails` (`status`,`max_mails`)
103 ) TYPE={?_TABLE_TYPE?}");
104
105                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_points`');
106                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_points` (
107   `id` BIGINT(22) NOT NULL AUTO_INCREMENT,
108   `userid` BIGINT(22) NOT NULL DEFAULT 0,
109   `ref_depth` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
110   `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
111   `locked_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
112 PRIMARY KEY  (`id`),
113 INDEX (`userid`)
114 ) TYPE={?_TABLE_TYPE?}");
115
116                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_links`');
117                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_links` (
118   `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
119   `stats_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
120   `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
121   `link_type` ENUM('NORMAL') NOT NULL DEFAULT 'NORMAL',
122 PRIMARY KEY  (`id`),
123 INDEX (`userid`),
124 INDEX (`stats_id`)
125 ) TYPE={?_TABLE_TYPE?}");
126
127                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats`');
128                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_stats` (
129   `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
130   `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
131   `cat_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
132   `payment_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
133   `subject` VARCHAR(200) NOT NULL DEFAULT '',
134   `url` TINYTEXT NOT NULL,
135   `max_rec` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
136   `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
137   `timestamp_ordered` VARCHAR(10) NOT NULL DEFAULT '',
138   `pool_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
139   `timestamp_sstart` VARCHAR(10) NOT NULL DEFAULT '',
140   `timestamp_send` VARCHAR(10) NOT NULL DEFAULT '',
141   `is_stats` ENUM('Y','N') NOT NULL DEFAULT 'N',
142 PRIMARY KEY  (`id`),
143 INDEX (`userid`),
144 INDEX (`cat_id`),
145 INDEX (`payment_id`),
146 INDEX (`pool_id`)
147 ) TYPE={?_TABLE_TYPE?}");
148
149                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats_data`');
150                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_stats_data` (
151 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
152 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
153 `stats_type` VARCHAR(255) NOT NULL DEFAULT 'unknown',
154 `stats_data` VARCHAR(255) NOT NULL DEFAULT '',
155 `inserted` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
156 PRIMARY KEY (`id`),
157 INDEX (`userid`),
158 INDEX (`stats_type`)
159 ) TYPE={?_TABLE_TYPE?} COMMENT='Member statistics data'");
160
161                 // Admin menu
162                 addAdminMenuSql('user',NULL,'Mitglieder-Management','Mitglieder freischalten, sperren, Accounts editieren, Neuanmeldungen verwalten, {OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben und abziehen und und und...',3);
163                 addAdminMenuSql('user','del_user','Mitglied l&ouml;schen','L&ouml;schen Sie hier Mitglied, die gegen die AGBs mehrmals verstossen haben. Bitte seien Sie nett zu Ihren Mitgliedern und l&ouml;schen Sie nicht gleich.',1);
164                 addAdminMenuSql('user','chk_regs','Anmeldungen pr&uuml;fen','Pr&uuml;fen Sie hier neue Anmeldungen zu Ihrem System. Hier k&ouml;nnen Sie im Falle einer Fehler-Mail den Mitglied gleich wieder l&ouml;schen!',2);
165                 addAdminMenuSql('user','lock_user','Mitglied sperren / entsperren','Sperren Sie Mitglied, die zu viele unbest&auml;tigte Mails haben oder gegen Ihre AGBs verstossen haben &uuml;ber diesen Men&uuml;punkt.',3);
166                 addAdminMenuSql('user','list_user','Mitglied auflisten','Listen Sie alle Mitglied oder eingeschr&auml;nkt nach Suchkritieren Ihre Userdatenbank auf. Sie k&ouml;nen per Klick auf die Usernummer sich Details zum Mitglied ansehen.',4);
167                 addAdminMenuSql('user','add_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben','Buchen Sie einem Mitglied direkt {OPEN_CONFIG}POINTS{CLOSE_CONFIG} auf. Sie k&ouml;nnen dazu auch einen Kommentar mitsenden.',5);
168                 addAdminMenuSql('user','edit_user','Account editieren','Daten eines Mitglieder-Accountes &auml;ndern.',6);
169                 addAdminMenuSql('user','list_refs','Referals anzeigen','Mit diesem Men&uuml;punkt k&ouml;nnen Sie die generierten Referals eines Mitgliedes auflisten.',7);
170                 addAdminMenuSql('user','list_links','Unbest&auml;tigte Mails','Mit diesem Men&uuml;punkt k&ouml;nnen Sie die vom Mitglied nicht best&auml;tigten Mails anzeigen.',8);
171                 addAdminMenuSql('user','list_cats','Kategorien anzeigen','Listet die ausgew&auml;hlten Kategorien eines Mitgliedes auf.',9);
172                 break;
173
174         case 'remove': // Do stuff when removing extension
175                 // SQL commands to run
176                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_del`');
177                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_cats`');
178                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_data`');
179                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_points`');
180                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_links`');
181                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats`');
182                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats_data`');
183                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_user','user_contct','list_user_del') OR `action`='user'");
184                 break;
185
186         case 'activate': // Do stuff when admin activates this extension
187                 // SQL commands to run
188                 addExtensionSql('');
189                 break;
190
191         case 'deactivate': // Do stuff when admin deactivates this extension
192                 // SQL commands to run
193                 addExtensionSql('');
194                 break;
195
196         case 'update': // Update an extension
197                 switch (getCurrentExtensionVersion())
198                 {
199                         case '0.1.0': // SQL queries for v0.1
200                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `user_limit` INT(7) UNSIGNED NOT NULL DEFAULT 20");
201
202                                 // Update notes (these will be set as task text!)
203                                 setExtensionUpdateNotes("Seitenweises Anzeigen der User-Liste ist nun m&ouml;glich.");
204                                 break;
205
206                         case '0.1.1': // SQL queries for v0.1.1
207                                 // This update depends on sql_patches update!
208                                 addExtensionUpdateDependency('sql_patches');
209
210                                 // Update notes (these will be set as task text!)
211                                 setExtensionUpdateNotes("Ung&uuml;ltiges Update.");
212                                 break;
213
214                         case '0.1.2': // SQL queries for v0.1.2
215                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `mails_confirmed` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
216
217                                 // Update notes (these will be set as task text!)
218                                 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.");
219                                 break;
220
221                         case '0.1.3': // SQL queries for v0.1.3
222                                 // Update notes (these will be set as task text!)
223                                 setExtensionUpdateNotes("Den Pfad <em>Sie sind hier</em> im Men&uuml;punkt <u>Online-Liste</u> erweitert.");
224                                 break;
225
226                         case '0.1.4': // SQL queries for v0.1.4
227                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `emails_received` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
228
229                                 // Update notes (these will be set as task text!)
230                                 setExtensionUpdateNotes("Anzahl empfangener Mails wird angezeigt. <big>Diese Anzeige kann fehlerhaft sein, wenn Sie bereits Mitglieder in Ihrem {?mt_word?} haben sollen!</big>");
231                                 break;
232
233                         case '0.1.5': // SQL queries for v0.1.5
234                                 // Update notes (these will be set as task text!)
235                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
236                                 break;
237
238                         case '0.1.6': // SQL queries for v0.1.6
239                                 // Update notes (these will be set as task text!)
240                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
241                                 break;
242
243                         case '0.1.7': // SQL queries for v0.1.7
244                                 // Update notes (these will be set as task text!)
245                                 setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv.");
246                                 break;
247
248                         case '0.1.8': // SQL queries for v0.1.8
249                                 // Update notes (these will be set as task text!)
250                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
251                                 break;
252
253                         case '0.1.9': // SQL queries for v0.1.9
254                                 // Update notes (these will be set as task text!)
255                                 setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion <u>generateUserProfileLink()</u> ausgelagert.");
256                                 break;
257
258                         case '0.2.0': // SQL queries for v0.2.0
259                                 // Update notes (these will be set as task text!)
260                                 setExtensionUpdateNotes("User-Liste ausgelagert in Templates und &uuml;berbreite Zeile in 2er-Zeile umgewandelt.");
261                                 break;
262
263                         case '0.2.1': // SQL queries for v0.2.1
264                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `user_alpha` TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
265                                 addAdminMenuSql('setup','config_user','Mitgliederliste','Anzahl Mitglieder pro Seite, Anzahl Buchstaben pro Zeile usw.', 8);
266
267                                 // Update notes (these will be set as task text!)
268                                 setExtensionUpdateNotes("User-Liste ist konfigurierbar: Anzahl Mitglieder pro Seite und Anzahl Buchstaben pro Zeile; Template-Fehler beseitigt.");
269                                 break;
270
271                         case '0.2.2': // SQL queries for v0.2.2
272                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `gender` `gender` ENUM('M','F','C') NOT NULL DEFAULT 'M'");
273
274                                 // Update notes (these will be set as task text!)
275                                 setExtensionUpdateNotes("Anrede &quot;Firma&quot; hinzugef&uuml;gt.");
276                                 break;
277
278                         case '0.2.3': // SQL queries for v0.2.3
279                                 // Update notes (these will be set as task text!)
280                                 setExtensionUpdateNotes("Datumsformat festgelegt auf ausf&uuml;hrlich.");
281                                 break;
282
283                         case '0.2.4': // SQL queries for v0.2.4
284                                 // Update notes (these will be set as task text!)
285                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
286                                 break;
287
288                         case '0.2.5': // SQL queries for v0.2.5
289                                 // Update notes (these will be set as task text!)
290                                 setExtensionUpdateNotes("SQL-Anweisungen abgesichert.");
291                                 break;
292
293                         case '0.2.6': // SQL queries for v0.2.6
294                                 // Update notes (these will be set as task text!)
295                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
296                                 break;
297
298                         case '0.2.7': // SQL queries for v0.2.7
299                                 // Update notes (these will be set as task text!)
300                                 setExtensionUpdateNotes("Sicherheitsupdate f&uuml;r die Include-Befehle.");
301                                 break;
302
303                         case '0.2.8': // SQL queries for v0.2.8
304                                 // Update notes (these will be set as task text!)
305                                 setExtensionUpdateNotes("if-Anweisungen auf Funktion <strong>empty()</strong> umgestellt.");
306                                 break;
307
308                         case '0.2.9': // SQL queries for v0.2.9
309                                 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);
310
311                                 // Update notes (these will be set as task text!)
312                                 setExtensionUpdateNotes("Admin-Kontaktformular hinzugef&uuml;gt.");
313                                 break;
314
315                         case '0.3.0': // SQL queries for v0.3.0
316                                 // Update notes (these will be set as task text!)
317                                 setExtensionUpdateNotes("Hash-Erstellung von <strong>md5()</strong> auf bessere Funktion <strong>generateHash()</strong> umgestellt.<br />Diverse Fixes f&uuml;r <em>0.2.1-Beta1</em> Release.");
318                                 break;
319
320                         case '0.3.1': // SQL queries for v0.3.1
321                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title` = 'Mitglieder-Management' WHERE `action`='user' AND (`what`='' OR `what` IS NULL) LIMIT 1");
322
323                                 // Update notes (these will be set as task text!)
324                                 setExtensionUpdateNotes("Verwaltung auf Management umgestellt");
325                                 break;
326
327                         case '0.3.2': // SQL queries for v0.3.2
328                                 // Update notes (these will be set as task text!)
329                                 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.");
330                                 break;
331
332                         case '0.3.3': // SQL queries for v0.3.3
333                                 // Update notes (these will be set as task text!)
334                                 setExtensionUpdateNotes("Mitglieder sind nun per Formular kontaktierbar (es wird eine EMail versendet), gesperrte und best&auml;tigte Mitglieder-Accounts sind seperat oder gemeinsam auflistbar (seperat nur mit der Erweiterung <em>task</em>!)");
335                                 break;
336
337                         case '0.3.4': // SQL queries for v0.3.4
338                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `select_user_zero_refid` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
339                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `user_min_confirmed` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 10");
340                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `rand_confirmed` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
341
342                                 // Update notes (these will be set as task text!)
343                                 setExtensionUpdateNotes("Mitglieder werden per Zufall als Referal-Id ausgew&auml;hlt, die eine Mindestanzahl an best&auml;tigten Mails haben, wenn die Ref-Id 0 ist.");
344                                 break;
345
346                         case '0.3.5': // SQL queries for v0.3.5
347                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `lock_reason` TINYTEXT");
348                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `lock_timestamp` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00'");
349                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `user_delete_purge` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY') * 30)."");
350                                 addAdminMenuSql('user', 'list_user_del', 'L&ouml;schungen auflisten', 'Listet die L&ouml;schungen von Usern auf.', 9);
351                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_del`');
352                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_del` (
353 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
354 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
355 `email` VARCHAR(255) NOT NULL DEFAULT '',
356 `surname` VARCHAR(255) NOT NULL DEFAULT '',
357 `family` VARCHAR(255) NOT NULL DEFAULT '',
358 `joined` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
359 `last_online` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
360 `del_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
361 `del_reason` TINYTEXT,
362 INDEX (`userid`),
363 PRIMARY KEY (`id`)
364 ) TYPE={?_TABLE_TYPE?} COMMENT='List of deleted users'");
365
366                                 // Update notes (these will be set as task text!)
367                                 setExtensionUpdateNotes("Der Sperrgrund wird nun mit abgespeichert und beim L&ouml;schen des Users mit ausgesendet.");
368                                 break;
369                 } // END - switch
370                 break;
371
372         case 'modify': // When the extension got modified
373                 break;
374
375         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
376                 break;
377
378         case 'init': // Do stuff when extension is initialized
379                 break;
380
381         default: // Unknown extension mode
382                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
383                 break;
384 }
385
386 // [EOF]
387 ?>