X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmonthly%2Fmonthly_bonus.php;h=1ac1f05ea0fc25136d7048d42bf51dee516daa34;hb=6c763653e88b9d10627e651ca59c7201d4b7d62b;hp=a014831aeb7ad64df282d2f04b53bd7e699c3e63;hpb=1657e674105ece63ee49105cb377067fa4408e3b;p=mailer.git diff --git a/inc/monthly/monthly_bonus.php b/inc/monthly/monthly_bonus.php index a014831aeb..1ac1f05ea0 100644 --- a/inc/monthly/monthly_bonus.php +++ b/inc/monthly/monthly_bonus.php @@ -35,34 +35,31 @@ if (!defined('__SECURITY')) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; require($INC); -} elseif ((!EXT_IS_ACTIVE("bonus")) && (!IS_ADMIN())) { - ADD_FATAL(EXTENSION_PROBLEM_EXT_INACTIVE, "bonus"); +} elseif (!EXT_IS_ACTIVE("bonus")) { return; } // Do not execute when script is in CSS mode or no daily reset if (($CSS == 1) || (!defined('__DAILY_RESET'))) return; +//* DEBUG: */ echo basename(__FILE__)."
\n"; // Get current month (2 digits) $curr = date("m", time()); -if (($curr != $_CONFIG['last_month']) && ($_CONFIG['bonus_ranks'] > 0) && ($CSS != 1)) -{ +if (($curr != $_CONFIG['last_month']) && ($_CONFIG['bonus_ranks'] > 0) && ($CSS != 1)) { // Extension "autopurge" is inactive or purging of inactive accounts is deactivated $whereStatement1 = "WHERE status='CONFIRMED'"; $whereStatement2 = bigintval($_CONFIG['bonus_ranks']); // Shall I keep inactive members away from here? (mostly wanted in an "active-rallye" ...) - if (EXT_IS_ACTIVE("autopurge")) - { + if (EXT_IS_ACTIVE("autopurge")) { // Use last online stamp only when autopurge for inactive members is activated - if ($_CONFIG['ap_inactive_since'] > 0) - { + if ($_CONFIG['ap_inactive_since'] > 0) { // Okay, include last online timestamp $whereStatement1 = sprintf("WHERE status='CONFIRMED' AND last_online >= (UNIX_TIMESTAMP() - %s)", $_CONFIG['ap_inactive_since']); $whereStatement2 = bigintval($_CONFIG['bonus_ranks']); - } - } + } // END - if + } // END - if // Add more bonus points here $ADD = ""; @@ -72,59 +69,46 @@ if (($curr != $_CONFIG['last_month']) && ($_CONFIG['bonus_ranks'] > 0) && ($CSS if ($_CONFIG['bonus_stats_yn'] == "Y") $ADD .= " + bonus_stats"; if ($_CONFIG['bonus_ref_yn'] == "Y") $ADD .= " + bonus_ref"; + // Shall we add some entries? if (!empty($ADD)) { - $ADD .= " AND (0".$ADD.") > 0"; + $whereStatement1 .= " AND (0".$ADD.") > 0"; } // END - if - // SQL string to check for accounts - $result_main = SQL_QUERY_ESC("SELECT userid, email, (turbo_bonus + login_bonus + bonus_order + bonus_stats + bonus_ref) AS active_bonus + // Run SQL string to check for accounts + $result_main = SQL_QUERY_ESC("SELECT userid, email, gender, surname, family, (0".$ADD.") AS points FROM "._MYSQL_PREFIX."_user_data ".$whereStatement1."".$ADD." -ORDER BY active_bonus DESC, userid LIMIT %s", - array($whereStatement2), __FILE__, __LINE__); +ORDER BY points DESC, userid +LIMIT %s", + array($whereStatement2), __FILE__, __LINE__); - if (SQL_NUMROWS($result_main) > 0) - { + // Some entries were found? + if (SQL_NUMROWS($result_main) > 0) { // Load our winners... - $UIDs = ""; - while(list($uid, $email, $points) = SQL_FETCHROW($result_main)) - { - // Add userids in a row - $UIDs .= ",'".$uid."'"; - - // Add points to user's account directly - $result_data = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points -SET points=points+%s WHERE ref_depth=0 AND userid=%s LIMIT 1", - array($points, bigintval($uid)), __FILE__, __LINE__); - - // Update mediadata as well - if (GET_EXT_VERSION("mediadata") >= "0.0.4") - { - // Update database - MEDIA_UPDATE_ENTRY(array("total_points"), "add", $points); - } - - // Load email template and email it away - $msg = LOAD_EMAIL_TEMPLATE("member_bonus", $points, bigintval($uid)); - SEND_EMAIL($email, BONUS_MONTHLY_ONLINE_BONUS, $msg); - } - // Remove first commata - $UIDs = substr($UIDs, 1); - - // Get current month - $curr = date("m", time()); - if (strlen($curr) == 1) $curr = "0".$curr; - if ($curr == "00") $curr = "12"; + while ($content = SQL_FETCHARRAY($result_main)) { + // Make sure zero points are not mailed + if ($content['points'] > 0) { + // Add points to user's account directly + ADD_POINTS_REFSYSTEM("monthly_bonus", $content['uid'], $content['points'], false, "0", false, "direct"); + + // Translate gender/points + $content['gender'] = TRANSLATE_GENDER($content['gender']); + $content['points'] = TRANSLATE_COMMA($content['points']); + + // Load email template and email it away + $msg = LOAD_EMAIL_TEMPLATE("member_bonus", $content['points'], bigintval($content['uid'])); + SEND_EMAIL($content['email'], BONUS_MONTHLY_ONLINE_BONUS, $msg); + } // END - if + } // END - while // Reset accounts $result = SQL_QUERY("UPDATE "._MYSQL_PREFIX."_user_data SET turbo_bonus=0, login_bonus=0, bonus_order=0, bonus_stats=0, bonus_ref=0", __FILE__, __LINE__); - - } + } // END - if // Free memory SQL_FREERESULT($result_main); -} +} // END - if // ?>