- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "CSS-Datei kann per Admin-Bereich ein- und ausgeschaltet werden.";
-
- case "0.1.2": // SQL queries for v0.1.2
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD mails_confirmed BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'";
-
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "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.";
- break;
-
- case "0.1.3": // SQL queries for v0.1.3
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Den Pfad <I>Sie sind hier</I> im Menüpunkt <U>Online-Liste</U> erweitert.";
- break;
-
- case "0.1.4": // SQL queries for v0.1.4
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD emails_received BIGINT(20) UNSIGNED NOT NULL DEFAULT '0'";
-
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Anzahl empfangener Mails wird angezeigt. <BIG>Diese Anzeige kann fehlerhaft sein, wenn Sie bereits Mitglieder in Ihrem {!MT_WORD!} haben sollen!</BIG>";
- break;
-
- case "0.1.5": // SQL queries for v0.1.5
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
- break;
-
- case "0.1.6": // SQL queries for v0.1.6
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
- break;
-
- case "0.1.7": // SQL queries for v0.1.7
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Erweiterung bleibt wegen integrierten Schalters immer aktiv.";
- break;
-
- case "0.1.8": // SQL queries for v0.1.8
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Seit <A href=\"#\">Patch 340</A> überflüssige HTML-Tags entfernt.";
- break;
-
- case "0.1.9": // SQL queries for v0.1.9
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Link zum Mitgliedsprofil in Funktion <U>ADMIN_USER_PROFILE_LINK()</U> ausgelagert.";
- break;
-
- case "0.2.0": // SQL queries for v0.2.0
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "User-Liste ausgelagert in Templates und überbreite Zeile in 2er-Zeile umgewandelt.";
- break;
-
- case "0.2.1": // SQL queries for v0.2.1
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD user_alpha TINYINT(3) UNSIGNED NOT NULL DEFAULT '10'";
- $SQLs[] = "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)";
-
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "User-Liste ist konfigurierbar: Anzahl Mitglieder pro Seite und Anzahl Buchstaben pro Zeile; Template-Fehler beseitigt.";
- break;
-
- case "0.2.2": // SQL queries for v0.2.2
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE gender gender ENUM('M','F','C') NOT NULL DEFAULT 'M'";
-
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Anrede "Firma" hinzugefügt.";
- break;
-
- case "0.2.3": // SQL queries for v0.2.3
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Datumsformat festgelegt auf ausführlich.";
- break;
-
- case "0.2.4": // SQL queries for v0.2.4
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Wörter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
- break;
-
- case "0.2.5": // SQL queries for v0.2.5
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "SQL-Anweisungen abgesichert.";
+// Keep this extension always active!
+setExtensionAlwaysActive('Y');
+
+switch (getExtensionMode()) {
+ case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
+ addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_cats`');
+ addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_cats` (
+ `id` BIGINT(22) NOT NULL AUTO_INCREMENT,
+ `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `cat_id` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
+PRIMARY KEY (`id`),
+INDEX (`userid`),
+INDEX (`cat_id`)
+) TYPE={?_TABLE_TYPE?}");
+
+ addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_data`');
+ addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_data` (
+ `userid` BIGINT(22) NOT NULL AUTO_INCREMENT,
+ `surname` VARCHAR(255) NOT NULL DEFAULT '',
+ `family` VARCHAR(255) NOT NULL DEFAULT '',
+ `street_nr` VARCHAR(255) NOT NULL DEFAULT '',
+ `country` VARCHAR(4) NOT NULL DEFAULT '',
+ `zip` VARCHAR(6) NOT NULL DEFAULT '',
+ `city` VARCHAR(255) NOT NULL DEFAULT '',
+ `email` VARCHAR(255) NOT NULL DEFAULT '',
+ `birth_day` CHAR(2) NOT NULL DEFAULT '01',
+ `birth_month` CHAR(2) NOT NULL DEFAULT '01',
+ `birth_year` VARCHAR(4) NOT NULL DEFAULT '1970',
+ `password` VARCHAR(255) NOT NULL DEFAULT '',
+ `max_mails` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `receive_mails` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `refid` BIGINT(22) NOT NULL DEFAULT 0,
+ `status` ENUM('UNCONFIRMED','CONFIRMED','LOCKED') NOT NULL DEFAULT 'UNCONFIRMED',
+ `user_hash` VARCHAR(255) NULL DEFAULT NULL,
+ `REMOTE_ADDR` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
+ `last_online` VARCHAR(10) NOT NULL DEFAULT 0,
+ `last_module` VARCHAR(255) NOT NULL DEFAULT '',
+ `ref_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `total_logins` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `gender` ENUM('M','F') NOT NULL DEFAULT 'M',
+ `used_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
+ `emails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `joined` VARCHAR(10) NOT NULL DEFAULT 0,
+ `last_update` VARCHAR(10) NOT NULL DEFAULT 0,
+ `last_profile_sent` VARCHAR(10) NOT NULL DEFAULT 0,
+ `notified` ENUM('Y','N') NOT NULL DEFAULT 'N',
+ `ref_payout` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
+ `last_login` VARCHAR(10) NOT NULL DEFAULT 0,
+ `login_failures` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `last_failure` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
+PRIMARY KEY (`userid`),
+UNIQUE (`user_hash`),
+INDEX (`refid`),
+INDEX `status_mails` (`status`,`max_mails`)
+) TYPE={?_TABLE_TYPE?}");
+
+ addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_points`');
+ addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_points` (
+ `id` BIGINT(22) NOT NULL AUTO_INCREMENT,
+ `userid` BIGINT(22) NOT NULL DEFAULT 0,
+ `ref_depth` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
+ `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
+ `locked_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000,
+PRIMARY KEY (`id`),
+INDEX (`userid`)
+) TYPE={?_TABLE_TYPE?}");
+
+ addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_links`');
+ addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_links` (
+ `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `stats_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `link_type` ENUM('NORMAL') NOT NULL DEFAULT 'NORMAL',
+PRIMARY KEY (`id`),
+INDEX (`userid`),
+INDEX (`stats_id`)
+) TYPE={?_TABLE_TYPE?}");
+
+ addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats`');
+ addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_stats` (
+ `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `cat_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `payment_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `subject` VARCHAR(200) NOT NULL DEFAULT '',
+ `url` TINYTEXT NOT NULL,
+ `max_rec` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `timestamp_ordered` VARCHAR(10) NOT NULL DEFAULT '',
+ `pool_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+ `timestamp_sstart` VARCHAR(10) NOT NULL DEFAULT '',
+ `timestamp_send` VARCHAR(10) NOT NULL DEFAULT '',
+ `is_stats` ENUM('Y','N') NOT NULL DEFAULT 'N',
+PRIMARY KEY (`id`),
+INDEX (`userid`),
+INDEX (`cat_id`),
+INDEX (`payment_id`),
+INDEX (`pool_id`)
+) TYPE={?_TABLE_TYPE?}");
+
+ addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats_data`');
+ addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_stats_data` (
+`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+`stats_type` VARCHAR(255) NOT NULL DEFAULT 'unknown',
+`stats_data` VARCHAR(255) NOT NULL DEFAULT '',
+`inserted` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+PRIMARY KEY (`id`),
+INDEX (`userid`),
+INDEX (`stats_type`)
+) TYPE={?_TABLE_TYPE?} COMMENT='Member statistics data'");
+
+ // Admin menu
+ addAdminMenuSql('user',NULL,'Mitglieder-Management','Mitglieder freischalten, sperren, Accounts editieren, Neuanmeldungen verwalten, {OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben und abziehen und und und...',3);
+ addAdminMenuSql('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);
+ addAdminMenuSql('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);
+ addAdminMenuSql('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);
+ addAdminMenuSql('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);
+ addAdminMenuSql('user','add_points','{OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben','Buchen Sie einem Mitglied direkt {OPEN_CONFIG}POINTS{CLOSE_CONFIG} auf. Sie können dazu auch einen Kommentar mitsenden.',5);
+ addAdminMenuSql('user','edit_user','Account editieren','Daten eines Mitglieder-Accountes ändern.',6);
+ addAdminMenuSql('user','list_refs','Referals anzeigen','Mit diesem Menüpunkt können Sie die generierten Referals eines Mitgliedes auflisten.',7);
+ addAdminMenuSql('user','list_links','Unbestätigte Mails','Mit diesem Menüpunkt können Sie die vom Mitglied nicht bestätigten Mails anzeigen.',8);
+ addAdminMenuSql('user','list_cats','Kategorien anzeigen','Listet die ausgewählten Kategorien eines Mitgliedes auf.',9);