-$EXT_VERSION = "0.3.3";
-
-// Version history array (add more with , "0.1" and so on)
-$EXT_VER_HISTORY = array("0.0", "0.1", "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");
-
-switch ($EXT_LOAD_MODE)
-{
-case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
- // SQL commands to run
- $SQLs[] = "";
-
- // Load CSS-File?
- $EXT_CSS = "Y";
- break;
-
-case "remove": // Do stuff when removing extension
- // SQL commands to run
- $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_user' OR what='user_contct' LIMIT 2";
- break;
-
-case "activate": // Do stuff when admin activates this extension
- // SQL commands to run
- $SQLs[] = "";
- break;
-
-case "deactivate": // Do stuff when admin deactivates this extension
- // SQL commands to run
- $SQLs[] = "";
- break;
-
-case "update": // Update an extension
- switch ($EXT_VER)
- {
- case "0.1": // SQL queries for v0.1
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD user_limit INT(7) NOT NULL DEFAULT '20'";
-
- // Update notes (these will be set as task text!)
- $UPDATE_NOTES = "Seitenweises Anzeigen der User-Liste ist nun möglich.";
- break;
-
- case "0.1.1": // SQL queries for v0.1.1
- $SQLs[] = "UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='Y' WHERE ext_name='user' AND ext_has_css='N' LIMIT 1";
-
- // This update depends on sql_patches update!
- $EXT_UPDATE_DEPENDS = "sql_patches";
-
- // 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.";
+setThisExtensionVersion('0.3.5');
+
+// Version history array (add more with , '0.1.0' and so on)
+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'));
+
+// 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);