X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fextensions%2Fext-user.php;h=0bcac1b6b73a53666a3d578699df06e74de59175;hp=b5b4580fca4917675e73b8d6bf3f7c6385bde60d;hb=adb05fb6876bdca84e73f4ea04998c1400e2cfb7;hpb=7fabfadce30a7bea7ce3ad1f1e2e7e5e616f2669 diff --git a/inc/extensions/ext-user.php b/inc/extensions/ext-user.php index b5b4580fca..0bcac1b6b7 100644 --- a/inc/extensions/ext-user.php +++ b/inc/extensions/ext-user.php @@ -1,7 +1,7 @@ category connection data'"); + + addDropTableSql('user_data'); + addCreateTableSql('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 NULL DEFAULT NULL, +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`), +) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Main user data'"); + + addDropTableSql('user_points'); + addCreateTableSql('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`), +) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'User points (no used points)'"); + + addDropTableSql('user_links'); + addCreateTableSql('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`), +) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Unconfirmed mails per user'"); + + addDropTableSql('user_stats'); + addCreateTableSql('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?}"); +) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Mail statistics per user order'"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats_data`"); - addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_stats_data` ( + addDropTableSql('user_stats_data'); + addCreateTableSql('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', @@ -157,31 +156,35 @@ INDEX (`pool_id`) PRIMARY KEY (`id`), INDEX (`userid`), INDEX (`stats_type`) -) TYPE={?_TABLE_TYPE?} COMMENT='Member statistics data'"); +) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Member statistics data'"); // Admin menu - 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)"); - 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)"); - 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)"); - 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)"); - 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)"); - 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)"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','edit_user','Account editieren','Daten eines Mitglieder-Accountes ändern.',6)"); - 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)"); - 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)"); - 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)"); + 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); break; case 'remove': // Do stuff when removing extension // SQL commands to run + addDropTableSql('user_del'); + addDropTableSql('user_cats'); + addDropTableSql('user_data'); + addDropTableSql('user_points'); + addDropTableSql('user_links'); + addDropTableSql('user_stats'); + addDropTableSql('user_stats_data'); addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_user','user_contct','list_user_del') OR `action`='user'"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_del`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_cats`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_data`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_points`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_links`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats`"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_stats_data`"); + + // Register new filters for gathering points + unregisterFilter(__FUNCTION__, __LINE__, 'get_total_points', 'USER_POINTS', true, isExtensionDryRun()); + unregisterFilter(__FUNCTION__, __LINE__, 'get_own_points', 'USER_POINTS', true, isExtensionDryRun()); break; case 'activate': // Do stuff when admin activates this extension @@ -195,10 +198,9 @@ INDEX (`stats_type`) break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) - { + switch (getCurrentExtensionVersion()) { case '0.1.0': // SQL queries for v0.1 - addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `user_limit` INT(7) UNSIGNED NOT NULL DEFAULT 20"); + addConfigAddSql('user_limit', 'INT(7) UNSIGNED NOT NULL DEFAULT 20'); // Update notes (these will be set as task text!) setExtensionUpdateNotes("Seitenweises Anzeigen der User-Liste ist nun möglich."); @@ -206,14 +208,14 @@ INDEX (`stats_type`) case '0.1.1': // SQL queries for v0.1.1 // This update depends on sql_patches update! - addExtensionUpdateDependency('sql_patches'); + addExtensionDependency('sql_patches'); // Update notes (these will be set as task text!) setExtensionUpdateNotes("Ungültiges Update."); break; case '0.1.2': // SQL queries for v0.1.2 - addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `mails_confirmed` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"); + addExtensionSql('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!) 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."); @@ -225,7 +227,7 @@ INDEX (`stats_type`) break; case '0.1.4': // SQL queries for v0.1.4 - addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `emails_received` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"); + addExtensionSql('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!) setExtensionUpdateNotes("Anzahl empfangener Mails wird angezeigt. Diese Anzeige kann fehlerhaft sein, wenn Sie bereits Mitglieder in Ihrem {?mt_word?} haben sollen!"); @@ -262,8 +264,8 @@ INDEX (`stats_type`) break; case '0.2.1': // SQL queries for v0.2.1 - addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `user_alpha` TINYINT(3) UNSIGNED NOT NULL DEFAULT 10"); - 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)"); + addConfigAddSql('user_alpha', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); + addAdminMenuSql('setup','config_user','Mitgliederliste','Anzahl Mitglieder pro Seite, Anzahl Buchstaben pro Zeile usw.', 8); // Update notes (these will be set as task text!) setExtensionUpdateNotes("User-Liste ist konfigurierbar: Anzahl Mitglieder pro Seite und Anzahl Buchstaben pro Zeile; Template-Fehler beseitigt."); @@ -283,7 +285,7 @@ INDEX (`stats_type`) case '0.2.4': // SQL queries for v0.2.4 // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wörter Mailtausch, Mailtausches und Mailtauscher sind austauschbar."); + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); break; case '0.2.5': // SQL queries for v0.2.5 @@ -307,7 +309,7 @@ INDEX (`stats_type`) break; case '0.2.9': // SQL queries for v0.2.9 - 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)"); + addAdminMenuSql('user','user_contct','Mitglied kontaktieren','Kontaktieren Sie hier Ihre Mitglieder ganz direkt über ein Webformular. Sie brauchen somit kein EMail-Programm mehr starten!', 8); // Update notes (these will be set as task text!) setExtensionUpdateNotes("Admin-Kontaktformular hinzugefügt."); @@ -327,7 +329,7 @@ INDEX (`stats_type`) case '0.3.2': // SQL queries for v0.3.2 // Update notes (these will be set as task text!) - setExtensionUpdateNotes("PHP-Hinweis in Userauflistung gefixt (trat bei fehlender nickname-Erweiterung auf) und Darstellungsfehler von 0.00000 unbestätigten Mails gefixt."); + setExtensionUpdateNotes("PHP-Hinweis in Userauflistung gefixt (trat bei fehlender Erweiterung ext-nickname auf) und Darstellungsfehler von 0.00000 unbestätigten Mails gefixt."); break; case '0.3.3': // SQL queries for v0.3.3 @@ -336,21 +338,21 @@ INDEX (`stats_type`) break; case '0.3.4': // SQL queries for v0.3.4 - addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `select_user_zero_refid` ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `user_min_confirmed` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 10"); - addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `rand_confirmed` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"); + addConfigAddSql('select_user_zero_refid', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addConfigAddSql('user_min_confirmed', 'SMALLINT(5) UNSIGNED NOT NULL DEFAULT 10'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `rand_confirmed` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Mitglieder werden per Zufall als Referal-ID ausgewählt, die eine Mindestanzahl an bestätigten Mails haben, wenn die Ref-Id 0 ist."); + setExtensionUpdateNotes("Mitglieder werden per Zufall als Referal-Id ausgewählt, die eine Mindestanzahl an bestätigten Mails haben, wenn die Ref-Id 0 ist."); break; case '0.3.5': // SQL queries for v0.3.5 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `lock_reason` TINYTEXT"); addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `lock_timestamp` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00'"); - addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `user_delete_purge` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY') * 30).""); - 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)"); - addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_user_del`"); - addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_user_del` ( + addConfigAddSql('user_delete_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 30)); + addAdminMenuSql('user', 'list_user_del', 'Löschungen auflisten', 'Listet die Löschungen von Usern auf.', 9); + addDropTableSql('user_del'); + addCreateTableSql('user_del', "( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, `email` VARCHAR(255) NOT NULL DEFAULT '', @@ -362,27 +364,95 @@ INDEX (`stats_type`) `del_reason` TINYTEXT, INDEX (`userid`), PRIMARY KEY (`id`) -) TYPE={?_TABLE_TYPE?} COMMENT='List of deleted users'"); +) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'List of deleted users'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Der Sperrgrund wird nun mit abgespeichert und beim Löschen des Users mit ausgesendet."); + break; + + case '0.3.6': // SQL queries for v0.3.6 + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_cats` DROP INDEX `userid`'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_cats` ADD UNIQUE `userid_catid` ( `userid` , `cat_id` )'); // Update notes (these will be set as task text!) setExtensionUpdateNotes("Der Sperrgrund wird nun mit abgespeichert und beim Löschen des Users mit ausgesendet."); break; - } + + case '0.3.7': // SQL queries for v0.3.7 + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_cats` CHANGE `id` `id` BIGINT( 22 ) UNSIGNED NOT NULL AUTO_INCREMENT'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_cats` CHANGE `userid` `userid` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_cats` CHANGE `cat_id` `cat_id` TINYINT( 3 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `userid` `userid` BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_del` CHANGE `userid` `userid` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` CHANGE `stats_id` `stats_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` CHANGE `userid` `userid` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_points` CHANGE `userid` `userid` BIGINT( 22 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_points` CHANGE `ref_depth` `ref_depth` TINYINT( 3 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_refs` CHANGE `userid` `userid` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_refs` CHANGE `level` `level` SMALLINT( 6 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_refs` CHANGE `refid` `refid` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` CHANGE `userid` `userid` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` CHANGE `cat_id` `cat_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` CHANGE `payment_id` `payment_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` CHANGE `pool_id` `pool_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats_data` CHANGE `userid` `userid` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL'); + + // Cleanup SQLs + addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid` IS NULL OR `cat_id` IS NULL'); + addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_del` WHERE `userid` IS NULL'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_links` SET `stats_id`=NULL WHERE `stats_id`=0'); + addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `userid` IS NULL'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_points` SET `ref_depth`=NULL WHERE `ref_depth`=0'); + addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_points` WHERE `userid` IS NULL'); + addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_refs` WHERE `userid` IS NULL OR `refid` IS NULL OR `level` IS NULL'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `cat_id`=NULL WHERE `cat_id`=0'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `payment_id`=NULL WHERE `payment_id`=0'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `pool_id`=NULL WHERE `pool_id`=0'); + addExtensionSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `userid` IS NULL'); + + // This update depends on ext-bonus + addExtensionDependency('bonus'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("NULL ist wichtiger als 0 und UNSIGNED auch."); + break; + + case '0.3.7': // SQL queries for v0.3.7 + addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `last_failure` `last_failure` TIMESTAMP NULL DEFAULT NULL'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ausgangswert ist nicht mehr 0000-00-00 00:00:00, sondern einfach NULL."); + break; + + case '0.3.8': // SQL queries for v0.3.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Update verschoben nach ext-order (da es Werbeguthaben ist und nichts mit dem Mitglied selbst zu tun hat)."); + break; + + case '0.3.9': // SQL queries for v0.3.9 + // Register new filters for gathering points + registerFilter(__FUNCTION__, __LINE__, 'get_total_points', 'USER_POINTS', true, isExtensionDryRun()); + registerFilter(__FUNCTION__, __LINE__, 'get_own_points', 'USER_POINTS', true, isExtensionDryRun()); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Filter registriert, die das eigene {?POINTS?}-Guthaben des Mitgliedes zurückliefern."); + break; + } // END - switch break; case 'modify': // When the extension got modified break; - case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305. + case 'test': // For testing purposes break; case 'init': // Do stuff when extension is initialized break; default: // Unknown extension mode - DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode())); + logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName())); break; -} +} // END - switch // [EOF] ?>