X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fmonthly%2Fmonthly_bonus.php;h=9e8e2d636191b7f8ce1761f574a620dd4b6614e6;hb=4373e155854012d687fdfcae4c69d1a940883fab;hp=281c08a0438e3fbe2abe79cce500cc5fe08dec50;hpb=d6834211baacaa54b282898fe54dc8c1511f046b;p=mailer.git diff --git a/inc/monthly/monthly_bonus.php b/inc/monthly/monthly_bonus.php index 281c08a043..9e8e2d6361 100644 --- a/inc/monthly/monthly_bonus.php +++ b/inc/monthly/monthly_bonus.php @@ -1,7 +1,7 @@ \n"; +// Debug line +//* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Monthly reset started.'); -// Get current month (2 digits) -$curr = date("m", time()); - -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']); +if ((getBonusRanks() > 0) && (!isCssOutputMode())) { + // Extension 'autopurge' is inactive or purging of inactive accounts is deactivated\ + $whereStatement = runFilterChain('user_exclusion_sql', "WHERE `status`='CONFIRMED'"); // Shall I keep inactive members away from here? (mostly wanted in an "active-rallye" ...) - if (EXT_IS_ACTIVE("autopurge")) { - // Use last online stamp only when autopurge for inactive members is activated - 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 + // @TODO Rewrite these if() blocks to a filter + if ((isExtensionActive('autopurge')) && ((getApInactiveSince() > 0))) { + // Okay, include last online timestamp + $whereStatement .= ' AND (UNIX_TIMESTAMP() - `d`.`last_online`) < {?ap_inactive_since?}'; } // END - if - // Add more bonus points here - $ADD = ""; - if ($_CONFIG['bonus_click_yn'] == "Y") $ADD .= " + turbo_bonus"; - if ($_CONFIG['bonus_login_yn'] == "Y") $ADD .= " + login_bonus"; - if ($_CONFIG['bonus_order_yn'] == "Y") $ADD .= " + bonus_order"; - if ($_CONFIG['bonus_stats_yn'] == "Y") $ADD .= " + bonus_stats"; - if ($_CONFIG['bonus_ref_yn'] == "Y") $ADD .= " + bonus_ref"; + // Add more bonus points here by running a filter + $add = runFilterChain('add_bonus_points_user_columns', ''); // Shall we add some entries? - if (!empty($ADD)) { - $whereStatement1 .= " AND (0".$ADD.") > 0"; + if (!empty($add)) { + $whereStatement .= ' AND (0' . $add . ') > 0'; } // END - if // 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__); + $result_main = sqlQuery('SELECT + `d`.`userid`, + (0' . $add . ') AS `points` +FROM + `{?_MYSQL_PREFIX?}_user_data` AS `d` +' . $whereStatement . ' +ORDER BY + `points` DESC, + `d`.`userid` ASC +LIMIT {?bonus_ranks?}', __FILE__, __LINE__); // Some entries were found? - if (SQL_NUMROWS($result_main) > 0) { + if (!ifSqlHasZeroNums($result_main)) { // Load our winners... - while ($content = SQL_FETCHARRAY($result_main)) { + while ($content = sqlFetchArray($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']); + initReferralSystem(); + addPointsThroughReferralSystem('monthly_bonus', $content['userid'], $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); + $message = loadEmailTemplate('member_bonus', $content, bigintval($content['userid'])); + sendEmail($content['userid'], '{--MEMBER_MONTHLY_BONUS_WON_SUBJECT--}', $message); } // 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__); + // Reset all accounts + $result = sqlQuery('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); + sqlFreeResult($result_main); } // END - if -// +// Debug line +//* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Monthly reset ended.'); + +// [EOF] ?>