From 83ba05db027e2328e05a8fd3687865e9e57eb794 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sat, 29 Sep 2012 14:36:02 +0000 Subject: [PATCH] Code in 'init' phase of ext-order swapped out to daily_order.php, added filters for ext-rallye --- .gitattributes | 1 + inc/daily/daily_order.php | 59 ++++++++++++++++++++++++ inc/extensions/ext-order.php | 6 --- inc/extensions/ext-rallye.php | 78 ++++++-------------------------- inc/filter/rallye_filter.php | 84 +++++++++++++++++++++++++++++++++++ 5 files changed, 157 insertions(+), 71 deletions(-) create mode 100644 inc/daily/daily_order.php diff --git a/.gitattributes b/.gitattributes index e0acc3d335..e8d1746f45 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 index 0000000000..029687ec84 --- /dev/null +++ b/inc/daily/daily_order.php @@ -0,0 +1,59 @@ + 0', __FILE__, __LINE__); + +// Debug line +//* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Daily reset ended.'); + +// [EOF] +?> diff --git a/inc/extensions/ext-order.php b/inc/extensions/ext-order.php index 4767e28d28..4c6757f7e4 100644 --- a/inc/extensions/ext-order.php +++ b/inc/extensions/ext-order.php @@ -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 diff --git a/inc/extensions/ext-rallye.php b/inc/extensions/ext-rallye.php index f4047fd9a4..967cdeb52a 100644 --- a/inc/extensions/ext-rallye.php +++ b/inc/extensions/ext-rallye.php @@ -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 templates/".getLangu // Update notes setExtensionUpdateNotes("Gewinn aus der Referral-Rallye wird nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data 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ügt."); + break; } // END - switch break; @@ -341,69 +352,6 @@ Zudem sollten Sie mindestens folgende Templates (in 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 diff --git a/inc/filter/rallye_filter.php b/inc/filter/rallye_filter.php index 24d09ba745..939e0e00a6 100644 --- a/inc/filter/rallye_filter.php +++ b/inc/filter/rallye_filter.php @@ -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] ?> -- 2.39.2