Code in 'init' phase of ext-order swapped out to daily_order.php, added filters for...
authorRoland Häder <roland@mxchange.org>
Sat, 29 Sep 2012 14:36:02 +0000 (14:36 +0000)
committerRoland Häder <roland@mxchange.org>
Sat, 29 Sep 2012 14:36:02 +0000 (14:36 +0000)
.gitattributes
inc/daily/daily_order.php [new file with mode: 0644]
inc/extensions/ext-order.php
inc/extensions/ext-rallye.php
inc/filter/rallye_filter.php

index e0acc3d33564f30ace7bb244a828d4c9df6919d7..e8d1746f4516c10bc3ad09b298dc7c9d4cb1553c 100644 (file)
@@ -117,6 +117,7 @@ inc/daily/daily_doubler.php svneol=native#text/plain
 inc/daily/daily_earning.php svneol=native#text/plain
 inc/daily/daily_engine.php svneol=native#text/plain
 inc/daily/daily_holiday.php svneol=native#text/plain
+inc/daily/daily_order.php svneol=native#text/plain
 inc/daily/daily_profile.php svneol=native#text/plain
 inc/daily/daily_surfbar.php svneol=native#text/plain
 inc/daily/daily_user.php svneol=native#text/plain
diff --git a/inc/daily/daily_order.php b/inc/daily/daily_order.php
new file mode 100644 (file)
index 0000000..029687e
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 09/29/2012 *
+ * ===================                          Last change: 09/29/2012 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : daily_order.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Things to be done on daily reset                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Dinge, die beim taeglichen Reset erledigt werden *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * 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 *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} elseif ((!isHtmlOutputMode()) || (!isResetModeEnabled())) {
+       // Do not execute when script is in CSS mode or no daily reset
+       return;
+} elseif (!isExtensionActive('order')) {
+       logDebugMessage(__FILE__, __LINE__, 'Not resetting, needed extension disabled.');
+       return;
+}
+
+// Debug line
+//* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Daily reset started.');
+
+// Reset mail order values
+$result_ext = SQL_QUERY('UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `mail_orders`=0 WHERE `mail_orders` > 0', __FILE__, __LINE__);
+
+// Debug line
+//* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Daily reset ended.');
+
+// [EOF]
+?>
index 4767e28d288313d9fccf622e1c175bdc3790ab83..4c6757f7e415f5243b44ae6a854df9d7e2cc1b20 100644 (file)
@@ -385,12 +385,6 @@ INDEX (`pool_id`)",
                break;
 
        case 'init': // Do stuff when extension is initialized
-               // Do daily reset only when installed and extension version is at least 0.1.1
-               // @TODO This should be moved out to inc/daily/
-               if ((isResetModeEnabled()) && (isInstalled()) && (isAdminRegistered()) && (isExtensionInstalledAndNewer('order', '0.1.1'))) {
-                       // Reset mail order values
-                       $result_ext = SQL_QUERY('UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `mail_orders`=0 WHERE `mail_orders` > 0', __FILE__, __LINE__);
-               } // END - if
                break;
 
        case 'init': // Do stuff when extension is initialized
index f4047fd9a4934a0b47de3005e8b583c579e8a747..967cdeb52a8e789dafcf209855b2a26115c58f69 100644 (file)
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.3.6');
+setThisExtensionVersion('0.3.7');
 
 // 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', '0.3.3', '0.3.4', '0.3.5', '0.3.6'));
+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', '0.3.5', '0.3.6', '0.3.7'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -118,6 +118,8 @@ INDEX (`userid`)",
 
                // Unregister filter
                unregisterFilter(__FILE__, __LINE__, 'extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'init', 'RALLYE_NOTIFY_USERS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'add_rallye_notify_sqls', 'ADD_RALLYE_SQL_COLUMNS', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -331,6 +333,15 @@ Zudem sollten Sie mindestens folgende Templates (in <strong>templates/".getLangu
                                // Update notes
                                setExtensionUpdateNotes("Gewinn aus der Referral-Rallye wird nun &uuml;ber die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
                                break;
+
+                       case '0.3.7': // SQL queries for v0.3.7
+                               // Register filter
+                               registerFilter(__FILE__, __LINE__, 'init', 'RALLYE_NOTIFY_USERS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'add_rallye_notify_sqls', 'ADD_RALLYE_SQL_COLUMNS', false, true, isExtensionDryRun());
+
+                               // Update notes
+                               setExtensionUpdateNotes("Weitere Filter hinzugef&uuml;gt.");
+                               break;
                } // END - switch
                break;
 
@@ -341,69 +352,6 @@ Zudem sollten Sie mindestens folgende Templates (in <strong>templates/".getLangu
                break;
 
        case 'init': // Do stuff when extension is initialized
-               // Do stuff only when not in CSS mode
-               // @TODO Move this code into a hook
-               if (!isCssOutputMode()) {
-                       // Get total member count
-                       $total = getTotalConfirmedUser();
-
-                       // Add more data on higher versions
-                       $ADD1 = ''; $ADD2 = ''; $OR = '';
-                       if (isExtensionInstalledAndNewer('rallye', '0.2.0')) {
-                               $ADD1 = ",`min_users`,`min_prices`";
-                               $ADD2 = ",d.`min_users`,d.`min_prices`";
-                               $OR   = " OR (d.`min_users` <= " . $total . " AND d.`min_users` > 0)";
-                       } // END  - if
-
-                       // Check for new started but not notified rallyes
-                       $result = SQL_QUERY("SELECT SQL_SMALL_RESULT
-       `id`,
-       `title`,
-       `start_time`,
-       `end_time`,
-       `send_notify`
-       " . $ADD1 . "
-FROM
-       `{?_MYSQL_PREFIX?}_rallye_data`
-WHERE
-       `is_active`='Y' AND
-       `notified`='N' AND
-       `expired`='N' AND
-       `start_time` <= UNIX_TIMESTAMP() AND
-       `end_time` > UNIX_TIMESTAMP()
-LIMIT 1", __FILE__, __LINE__);
-                       if (SQL_NUMROWS($result) == 1) {
-                               // Start rallye
-                               autostartReferralRallyes($result);
-                       } // END - if
-
-                       // Free memory
-                       SQL_FREERESULT($result);
-
-                       // Check for expired rallyes
-                       $result = SQL_QUERY("SELECT SQL_SMALL_RESULT
-       d.`id`,
-       d.`title`,
-       d.`start_time`,
-       d.`end_time`,
-       d.`send_notify`
-       " . $ADD2 . "
-FROM
-       `{?_MYSQL_PREFIX?}_rallye_data` AS d
-WHERE
-       d.`is_active`='Y' AND
-       d.`notified`='Y' AND
-       d.`expired`='N' AND
-       (d.`end_time` <= UNIX_TIMESTAMP()".$OR.")
-LIMIT 1", __FILE__, __LINE__);
-                       if ((SQL_NUMROWS($result) == 1) && (isExtensionActive('autopurge'))) {
-                               // End rallye here...
-                               stopRallyeByResult($result);
-                       } // END - if
-
-                       // Free memory
-                       SQL_FREERESULT($result);
-               } // END - if
                break;
 
        default: // Unknown extension mode
index 24d09ba745482415401b918d13bc85f4f29e8414..939e0e00a689c4c8e45c8de6a3f4620b8153a484 100644 (file)
@@ -51,5 +51,89 @@ function FILTER_RALLYE_EXTRA_AUTOPURGE ($filterData) {
        return $filterData;
 }
 
+// Run filter for notifying users about rallyes
+function FILTER_RALLYE_NOTIFY_USERS ($filerData) {
+       // Do stuff only when not in CSS mode
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       if (!isCssOutputMode()) {
+               // Get total member count
+               $total = getTotalConfirmedUser();
+
+               // Run filter to get SQL "addons"
+               $sqlAddons = runFilterChain('add_rallye_notify_sqls', array(
+                       'add' => '',
+                       'or'  => ''
+               ));
+
+               // Check for new started but not notified rallyes
+               $result = SQL_QUERY("SELECT SQL_SMALL_RESULT
+       d.`id`,
+       d.`title`,
+       d.`start_time`,
+       d.`end_time`,
+       d.`send_notify`
+       " . $sqlAddons['add'] . "
+FROM
+       `{?_MYSQL_PREFIX?}_rallye_data` AS d
+WHERE
+       d.`is_active`='Y' AND
+       d.`notified`='N' AND
+       d.`expired`='N' AND
+       d.`start_time` <= UNIX_TIMESTAMP() AND
+       d.`end_time` > UNIX_TIMESTAMP()
+LIMIT 1", __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 1) {
+                       // Start rallye
+                       autostartReferralRallyes($result);
+               } // END - if
+
+               // Free memory
+               SQL_FREERESULT($result);
+
+               // Check for expired rallyes
+               $result = SQL_QUERY("SELECT SQL_SMALL_RESULT
+       d.`id`,
+       d.`title`,
+       d.`start_time`,
+       d.`end_time`,
+       d.`send_notify`
+       " . $sqlAddons['add'] . "
+FROM
+       `{?_MYSQL_PREFIX?}_rallye_data` AS d
+WHERE
+       d.`is_active`='Y' AND
+       d.`notified`='Y' AND
+       d.`expired`='N' AND
+       (d.`end_time` <= UNIX_TIMESTAMP()" . $sqlAddons['or'] . ")
+LIMIT 1", __FILE__, __LINE__);
+               if ((SQL_NUMROWS($result) == 1) && (isExtensionActive('autopurge'))) {
+                       // End rallye here...
+                       stopRallyeByResult($result);
+               } // END - if
+
+               // Free memory
+               SQL_FREERESULT($result);
+       } // END - if
+
+       // Return data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for adding SQL columns
+function FILTER_ADD_RALLYE_SQL_COLUMNS ($filterData) {
+       // Are all requirements met?
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       if (isExtensionInstalledAndNewer('rallye', '0.2.0')) {
+               // Add more data on higher versions
+               $filterData['add'] .= ',`min_users`,`min_prices`';
+               $filterData['or']  .= ' OR (d.`min_users` <= ' . $total . ' AND d.`min_users` > 0)';
+       } // END  - if
+
+       // Return data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
 // [EOF]
 ?>