X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fbonus_functions.php;h=25a7974dde0fc8f4fb6b8007c8b8fff5e5325da5;hp=dfe22f5b08a3c21676158b6eb65078e3f1936683;hb=1fd39b2564946ce7f19776abab8d65a31928fba1;hpb=cf3765c38cf0a76f396aca291f71858936e92956 diff --git a/inc/libs/bonus_functions.php b/inc/libs/bonus_functions.php index dfe22f5b08..25a7974dde 100644 --- a/inc/libs/bonus_functions.php +++ b/inc/libs/bonus_functions.php @@ -45,7 +45,7 @@ if (!defined('__SECURITY')) { // This function must be run *BEFORE* a link is removed from table 'mxchange_user_links' ! function addTurboBonus ($mid, $userid, $type) { // Shall we add bonus points? - if (getConfig('bonus_active') != 'Y') return false; + if (!isBonusRallyeActive()) return false; // Init variables $sql = ''; $bonus = '0'; $mail = '0'; $column = ''; @@ -151,7 +151,7 @@ function addBonusRanks ($data, $type, $userid) { // Load rankings $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_bonus_turbo` WHERE `%s`=%s ORDER BY `level` ASC LIMIT {?bonus_lines?}", array($type, $data), __FUNCTION__, __LINE__); - if (SQL_NUMROWS($result) > 0) { + if (!SQL_HASZERONUMS($result)) { // Start generating the ranking list $max = SQL_NUMROWS($result); @@ -218,10 +218,10 @@ LIMIT 1", // function handleBonusPoints ($mode) { // Shall we add bonus points? - if (getConfig('bonus_active') != 'Y') return; + if (!isBonusRallyeActive()) return; // Switch to jackpot-mode when no UID is supplied but userid-mode is selected - if ((getConfig('bonus_mode') == 'UID') && (getConfig('bonus_userid') == '0') && (isExtensionActive('jackpot'))) { + if ((getConfig('bonus_mode') == 'UID') && (getBonusUserId() == '0') && (isExtensionActive('jackpot'))) { // Update database & config updateConfiguration('bonus_mode', 'JACKPOT'); } // END - if @@ -235,15 +235,15 @@ function handleBonusPoints ($mode) { } // Check his amount first - $total = countSumTotalData(getConfig('bonus_userid'), 'user_points', 'points') - countSumTotalData(getConfig('bonus_userid'), 'user_data', 'used_points'); + $total = getTotalPoints(getBonusUserId()); // Subtract points from... switch (getConfig('bonus_mode')) { case 'JACKPOT': // ... jackpot - if ((isExtensionActive('jackpot')) && (subtractPointsFromJackpot($points) == -1) && (getConfig('bonus_userid') > 0)) { + if ((isExtensionActive('jackpot')) && (subtractPointsFromJackpot($points) == -1) && (isValidUserId(getBonusUserId()))) { if ($total >= $points) { // Subtract points from userid's account - subtractPointsFromJackpot('bonus_payout_jackpot', getConfig('bonus_userid'), $points); + subtractPointsFromJackpot('bonus_payout_jackpot', getBonusUserId(), $points); } // END - if } // END - if break; @@ -251,7 +251,7 @@ function handleBonusPoints ($mode) { case 'UID': // ... userid's account if ($total >= $points) { // Subtract points from userid's account - subtractPoints('bonus_payout_userid', getConfig('bonus_userid'), $points); + subtractPoints('bonus_payout_userid', getBonusUserId(), $points); } elseif (isExtensionActive('jackpot')) { // Try to subtract from jackpot $dummy = subtractPointsFromJackpot($points); @@ -285,7 +285,7 @@ function FILTER_ADD_LOGIN_BONUS () { // Bonus is not given by default ;-) $bonus = false; - if ((isExtensionInstalledAndNewer('sql_patches', '0.2.8')) && (getConfig('bonus_active') == 'Y') && (getConfig('bonus_login_yn') == 'Y')) { + if ((isExtensionInstalledAndNewer('sql_patches', '0.2.8')) && (isBonusRallyeActive()) && (getConfig('bonus_login_yn') == 'Y')) { // Update last login if far enougth away // @TODO This query isn't right, it will only update if the user was for a longer time away! SQL_QUERY_ESC('UPDATE @@ -314,5 +314,17 @@ LIMIT 1', } } +// Determines wether the "bonus rallye" is active +function isBonusRallyeActive () { + // Do we have cache? + if (!isset($GLOBALS['bonus_rallye_active'])) { + // Just determine it + $GLOBALS['bonus_rallye_active'] = (getConfig('bonus_active') == 'Y'); + } // END - if + + // Return cache + return $GLOBALS['bonus_rallye_active']; +} + // [EOF] ?>