2 /************************************************************************
3 * MXChange v0.2.1 Start: 04/29/2004 *
4 * ================ Last change: 10/29/2004 *
6 * -------------------------------------------------------------------- *
7 * File : ext-user.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Swapped out user management *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Ausgelagertes Mitglieder-Management *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
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 * For more information visit: http://www.mxchange.org *
23 * This program is free software; you can redistribute it and/or modify *
24 * it under the terms of the GNU General Public License as published by *
25 * the Free Software Foundation; either version 2 of the License, or *
26 * (at your option) any later version. *
28 * This program is distributed in the hope that it will be useful, *
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
31 * GNU General Public License for more details. *
33 * You should have received a copy of the GNU General Public License *
34 * along with this program; if not, write to the Free Software *
35 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
37 ************************************************************************/
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
45 setThisExtensionVersion('0.3.5');
47 // Version history array (add more with , '0.1.0' and so on)
48 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'));
50 // Keep this extension always active!
51 setExtensionAlwaysActive('Y');
53 switch (getExtensionMode()) {
54 case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
55 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_cats`");
56 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_cats` (
57 `id` BIGINT(22) NOT NULL AUTO_INCREMENT,
58 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
59 `cat_id` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
63 ) TYPE={?_TABLE_TYPE?}");
65 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_data`");
66 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_data` (
67 `userid` BIGINT(22) NOT NULL AUTO_INCREMENT,
68 `surname` VARCHAR(255) NOT NULL DEFAULT '',
69 `family` VARCHAR(255) NOT NULL DEFAULT '',
70 `street_nr` VARCHAR(255) NOT NULL DEFAULT '',
71 `country` VARCHAR(4) NOT NULL DEFAULT '',
72 `zip` VARCHAR(6) NOT NULL DEFAULT '',
73 `city` VARCHAR(255) NOT NULL DEFAULT '',
74 `email` VARCHAR(255) NOT NULL DEFAULT '',
75 `birth_day` CHAR(2) NOT NULL DEFAULT '01',
76 `birth_month` CHAR(2) NOT NULL DEFAULT '01',
77 `birth_year` VARCHAR(4) NOT NULL DEFAULT '1970',
78 `password` VARCHAR(255) NOT NULL DEFAULT '',
79 `max_mails` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
80 `receive_mails` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
81 `refid` BIGINT(22) NOT NULL DEFAULT 0,
82 `status` ENUM('UNCONFIRMED','CONFIRMED','LOCKED') NOT NULL DEFAULT 'UNCONFIRMED',
83 `user_hash` VARCHAR(255) NULL DEFAULT NULL,
84 `REMOTE_ADDR` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
85 `last_online` VARCHAR(10) NOT NULL DEFAULT 0,
86 `last_module` VARCHAR(255) NOT NULL DEFAULT '',
87 `ref_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
88 `total_logins` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
89 `gender` ENUM('M','F') NOT NULL DEFAULT 'M',
90 `used_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
91 `emails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
92 `joined` VARCHAR(10) NOT NULL DEFAULT 0,
93 `last_update` VARCHAR(10) NOT NULL DEFAULT 0,
94 `last_profile_sent` VARCHAR(10) NOT NULL DEFAULT 0,
95 `notified` ENUM('Y','N') NOT NULL DEFAULT 'N',
96 `ref_payout` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
97 `last_login` VARCHAR(10) NOT NULL DEFAULT 0,
98 `login_failures` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
99 `last_failure` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
100 PRIMARY KEY (`userid`),
101 UNIQUE (`user_hash`),
103 INDEX `status_mails` (`status`,`max_mails`)
104 ) TYPE={?_TABLE_TYPE?}");
106 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_points`");
107 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_points` (
108 `id` BIGINT(22) NOT NULL AUTO_INCREMENT,
109 `userid` BIGINT(22) NOT NULL DEFAULT 0,
110 `ref_depth` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
111 `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
112 `locked_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
115 ) TYPE={?_TABLE_TYPE?}");
117 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_links`");
118 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_links` (
119 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
120 `stats_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
121 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
122 `link_type` ENUM('NORMAL') NOT NULL DEFAULT 'NORMAL',
126 ) TYPE={?_TABLE_TYPE?}");
128 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats`");
129 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_stats` (
130 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
131 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
132 `cat_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
133 `payment_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
134 `subject` VARCHAR(200) NOT NULL DEFAULT '',
135 `url` TINYTEXT NOT NULL,
136 `max_rec` 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',
145 INDEX (`payment_id`),
147 ) TYPE={?_TABLE_TYPE?}");
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,
159 ) TYPE={?_TABLE_TYPE?} COMMENT='Member statistics data'");
162 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user',NULL,'Mitglieder-Management','Mitglieder freischalten, sperren, Accounts editieren, Neuanmeldungen verwalten, {?POINTS?} gutschreiben und abziehen und und und...',3)");
163 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','del_user','Mitglied löschen','Löschen Sie hier Mitglied, die gegen die AGBs mehrmals verstossen haben. Bitte seien Sie nett zu Ihren Mitgliedern und löschen Sie nicht gleich.',1)");
164 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','chk_regs','Anmeldungen prüfen','Prüfen Sie hier neue Anmeldungen zu Ihrem System. Hier können Sie im Falle einer Fehler-Mail den Mitglied gleich wieder löschen!',2)");
165 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','lock_user','Mitglied sperren / entsperren','Sperren Sie Mitglied, die zu viele unbestätigte Mails haben oder gegen Ihre AGBs verstossen haben über diesen Menüpunkt.',3)");
166 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','list_user','Mitglied auflisten','Listen Sie alle Mitglied oder eingeschränkt nach Suchkritieren Ihre Userdatenbank auf. Sie könen per Klick auf die Usernummer sich Details zum Mitglied ansehen.',4)");
167 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','add_points','{?POINTS?} gutschreiben','Buchen Sie einem Mitglied direkt {?POINTS?} auf. Sie können dazu auch einen Kommentar mitsenden.',5)");
168 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','edit_user','Account editieren','Daten eines Mitglieder-Accountes ändern.',6)");
169 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','list_refs','Referals anzeigen','Mit diesem Menüpunkt können Sie die generierten Referals eines Mitgliedes auflisten.',7)");
170 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','list_links','Unbestätigte Mails','Mit diesem Menüpunkt können Sie die vom Mitglied nicht bestätigten Mails anzeigen.',8)");
171 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','list_cats','Kategorien anzeigen','Listet die ausgewählten Kategorien eines Mitgliedes auf.',9)");
174 case 'remove': // Do stuff when removing extension
175 // SQL commands to run
176 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_user','user_contct','list_user_del') OR `action`='user'");
177 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_del`");
178 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_cats`");
179 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_data`");
180 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_points`");
181 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_links`");
182 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats`");
183 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats_data`");
186 case 'activate': // Do stuff when admin activates this extension
187 // SQL commands to run
191 case 'deactivate': // Do stuff when admin deactivates this extension
192 // SQL commands to run
196 case 'update': // Update an extension
197 switch (getCurrentExtensionVersion())
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");
202 // Update notes (these will be set as task text!)
203 setExtensionUpdateNotes("Seitenweises Anzeigen der User-Liste ist nun möglich.");
206 case '0.1.1': // SQL queries for v0.1.1
207 // This update depends on sql_patches update!
208 addExtensionUpdateDependency('sql_patches');
210 // Update notes (these will be set as task text!)
211 setExtensionUpdateNotes("Ungültiges Update.");
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");
217 // Update notes (these will be set as task text!)
218 setExtensionUpdateNotes("Dem Mitglied wird nun angezeigt, wie viele Mails er bestätigt hat. Alle vor dieser Version best. Mails werden leider nicht mehr berücksichtigt! Bitte teilen Sie dies Ihren Mitgliedern mit.");
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üpunkt <u>Online-Liste</u> erweitert.");
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");
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>");
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.");
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.");
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.");
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> überflüssige HTML-Tags entfernt.");
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.");
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 überbreite Zeile in 2er-Zeile umgewandelt.");
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 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('setup','config_user','Mitgliederliste','Anzahl Mitglieder pro Seite, Anzahl Buchstaben pro Zeile usw.', 8)");
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.");
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'");
274 // Update notes (these will be set as task text!)
275 setExtensionUpdateNotes("Anrede "Firma" hinzugefügt.");
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ührlich.");
283 case '0.2.4': // SQL queries for v0.2.4
284 // Update notes (these will be set as task text!)
285 setExtensionUpdateNotes("Wörter <strong>Mailtausch</strong>, <strong>Mailtausches</strong> und <strong>Mailtauscher</strong> sind austauschbar.");
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.");
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.");
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ür die Include-Befehle.");
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.");
308 case '0.2.9': // SQL queries for v0.2.9
309 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','user_contct','Mitglied kontaktieren','Kontaktieren Sie hier Ihre Mitglieder ganz direkt über ein Webformular. Sie brauchen somit kein EMail-Programm mehr starten!', 8)");
311 // Update notes (these will be set as task text!)
312 setExtensionUpdateNotes("Admin-Kontaktformular hinzugefügt.");
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ür <em>0.2.1-Beta1</em> Release.");
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");
323 // Update notes (these will be set as task text!)
324 setExtensionUpdateNotes("Verwaltung auf Management umgestellt");
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 nickname-Erweiterung auf) und Darstellungsfehler von <strong>0.00000</strong> unbestätigten Mails gefixt.");
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ätigte Mitglieder-Accounts sind seperat oder gemeinsam auflistbar (seperat nur mit der Erweiterung <em>task</em>!)");
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");
342 // Update notes (these will be set as task text!)
343 setExtensionUpdateNotes("Mitglieder werden per Zufall als Referal-ID ausgewählt, die eine Mindestanzahl an bestätigten Mails haben, wenn die Ref-Id 0 ist.");
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 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','list_user_del','Löschungen auflisten','Listet die Lö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,
364 ) TYPE={?_TABLE_TYPE?} COMMENT='List of deleted users'");
366 // Update notes (these will be set as task text!)
367 setExtensionUpdateNotes("Der Sperrgrund wird nun mit abgespeichert und beim Löschen des Users mit ausgesendet.");
372 case 'modify': // When the extension got modified
375 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
378 case 'init': // Do stuff when extension is initialized
381 default: // Unknown extension mode
382 DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));