mailer project continued:
[mailer.git] / inc / extensions / ext-beg.php
index 2c61987565f780510f74db7db94f80524032490f..68d1b4395295a79124d01c82c2eb0d1ee10f9e30 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.3.2');
+setThisExtensionVersion('0.3.4');
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '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'));
+setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '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'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -76,12 +76,22 @@ INDEX (`userid`)",
                // SQL commands to run
                addDropTableSql('beg_ips');
                addDropTableSql('beg_referals');
-               addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('config_beg','list_beg','list_beg_referal_urls')");
+               addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('config_beg','list_beg','list_beg_referral_urls')");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='beg'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what` IN ('beg','beg2')");
 
+               // Unregister points data
+               unregisterExtensionPointsData('beg');
+               unregisterExtensionPointsData('beg_ref');
+               unregisterExtensionPointsData('monthly_beg');
+               unregisterExtensionPointsData('monthly_beg_ref');
+
                // Unregister module
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='beg' LIMIT 1");
+
+               // Unregister filter
+               unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'BEG_RALLYE_USER_REGISTRATION_ADD_SQL_COLUMNS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'init', 'BEG_PURGE_IPS_NOTIFY_USER', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -282,19 +292,19 @@ INDEX (`userid`)",
                                break;
 
                        case '0.2.9': // SQL queries for v0.2.9
-                               addDropTableSql('beg_referals');
-                               addCreateTableSql('beg_referals', "
+                               addDropTableSql('beg_referrals');
+                               addCreateTableSql('beg_referrals', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
 `remote_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
 `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-`referal_url` TINYTEXT NOT NULL,
+`referral_url` TINYTEXT NOT NULL,
 PRIMARY KEY (`id`),
 INDEX (`userid`)",
                                        'Recorded referral URLs');
 
                                // Add admin menu
-                               addAdminMenuSql('user','list_beg_referal_urls','Bettel-Referrals auflisten','Listet alle Bettellink-Aufrufe inklusive Referral-URL auf.','13');
+                               addAdminMenuSql('user','list_beg_referral_urls','Bettel-Referrals auflisten','Listet alle Bettellink-Aufrufe inklusive Referral-URL auf.','13');
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Loggen der Referral-URLs hinzugefügt.");
@@ -302,8 +312,10 @@ INDEX (`userid`)",
 
                        case '0.3.0': // SQL queries for v0.3.0
                                addConfigDropSql('beg_mode');
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('beg','points','LOCKED','DIRECT')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('monthly_beg','points','LOCKED','DIRECT')");
+
+                               // Register points data
+                               registerExtensionPointsData('beg'        , 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('monthly_beg', 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
@@ -330,7 +342,33 @@ INDEX (`userid`)",
                                addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='Betteln bei {OPEN_CONFIG}MAIN_TITLE{CLOSE_CONFIG}' WHERE `module`='beg' AND `title`='' LIMIT 1");
 
                                // Update notes
-                               setExtensionUpdateNotes("Modul registriert und bei leerem Titel mit einem Standarttitel versehen.");
+                               setExtensionUpdateNotes("Modul registriert und bei leerem Titel mit einem Standardtitel versehen.");
+                               break;
+
+                       case '0.3.3': // SQL queries for v0.3.3
+                               // Register a filter
+                               registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'BEG_RALLYE_USER_REGISTRATION_ADD_SQL_COLUMNS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'init', 'BEG_PURGE_IPS_NOTIFY_USER', false, true, isExtensionDryRun());
+
+                               // This depends on ext-register
+                               addExtensionDependency('register');
+
+                               // Update notes
+                               setExtensionUpdateNotes("Filter für Anmeldeformular und Aufrämen der IPs hinzugefügt.");
+                               break;
+
+                       case '0.3.4': // SQL queries for v0.3.4
+                               // Register points data
+                               registerExtensionPointsData('beg_ref'        , 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('monthly_beg_ref', 'points', 'LOCKED', 'DIRECT');
+
+                               // SQL queries (renaming)
+                               addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_beg_referals` CHANGE `referal_url` `referral_url` TINYTEXT NOT NULL");
+                               addExtensionSql("RENAME TABLE `{?_MYSQL_PREFIX?}_beg_referals` TO `{?_MYSQL_PREFIX?}_beg_referrals`");
+                               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_beg_referral_urls` WHERE `what`='list_beg_referal_urls' LIMIT 1");
+
+                               // Update notes
+                               setExtensionUpdateNotes("Verwendungszwecke für Referralgutgschriften registriert.");
                                break;
                } // END - switch
                break;
@@ -342,18 +380,6 @@ INDEX (`userid`)",
                break;
 
        case 'init': // When extension is initialized
-               // Remove old entries
-               $OLD = getBegTimeout();
-               if (getBegUseridTimeout() > $OLD) {
-                       $OLD = getBegUseridTimeout();
-               } // END - if
-               SQL_QUERY('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_beg_ips` WHERE (UNIX_TIMESTAMP() - `timeout`) >= ' . ($OLD + 60*60) . '', __FILE__, __LINE__);
-
-               // Check for beg rallye is active and send mails out
-               if ((isBegRallyeEnabled()) && (isBegNewMemberNotifyEnabled())) {
-                       // Include file for sending out mails
-                       addIncludeToPool('notify', 'inc/mails/beg_mails.php');
-               } // END - if
                break;
 
        default: // Unknown extension mode