+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);