= %s AND d.completed='N' AND d.is_ref='N' ORDER BY d.timemark", array($DOUBLER_POINTS, $min), __FILE__, __LINE__); // Check for accounts with limitation $result_main = SQL_QUERY_ESC("SELECT DISTINCT d.id, d.userid, d.points, d.remote_ip, d.timemark FROM "._MYSQL_PREFIX."_doubler AS d LEFT JOIN "._MYSQL_PREFIX."_user_data AS u ON d.userid=u.userid WHERE u.status='CONFIRMED' AND d.points <= %s AND d.points >= %s AND d.completed='N' AND d.is_ref='N' ORDER BY d.timemark LIMIT %d", array($DOUBLER_POINTS, $min, $_CONFIG['doubler_max_sent']), __FILE__, __LINE__); if (((SQL_NUMROWS($result_total) > 0) && ($_CONFIG['doubler_sent_all'] == 'Y')) || ((SQL_NUMROWS($result_main) == $_CONFIG['doubler_group_sent']) && ($_CONFIG['doubler_sent_all'] == 'N'))) { // Switch to matching SQL resource $result_load = $result_main; if ((SQL_NUMROWS($result_total) > 0) && ($_CONFIG['doubler_sent_all'] == 'Y')) $result_load = $result_total; // At least one account was found while(list($id, $uid, $points, $ip, $time) = SQL_FETCHROW($result_load)) { // Only double when points are enougth! if ($DOUBLER_POINTS >= $points) { // Check for his ref points $result_ref = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_doubler WHERE refid=%d AND completed='N' AND is_ref='Y'", array(bigintval($uid)), __FILE__, __LINE__); list($ref) = SQL_FETCHROW($result_ref); // Free memory SQL_FREERESULT($result_ref); // Zero refid when empty (might be helpful!) if (empty($ref)) $ref = 0; if (($ref > 0) && ($DOUBLER_UID == $uid) && (!empty($ref))) { // Referral points found so add them and set line(s) to completed='Y' $points += $ref; $result_ref = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE refid=%d AND completed='N' AND is_ref='Y'", array(bigintval($uid)), __FILE__, __LINE__); } else { // No referral points found $ref = "0"; } // Exclude webmaster from doubling... if ($uid != $_CONFIG['doubler_uid']) { // Add points $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth=0 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); } } // Set entry as "payed" $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE id=%d LIMIT 1", array(bigintval($id)), __FILE__, __LINE__); $OK = false; // Check for jackpot inclusion in doubling process if (($jackpot > 0) && ($jackpot >= $points) && ($_CONFIG['doubler_jackpot'] == 'Y')) { // Subtract points from jackpot SUB_JACKPOT($points); $jackpot -= $points; // Okay, done! $OK = true; } // Exclude also webmaster's ID in taking points from webmaster's account if (($user > 0) && ($user >= $points) && (!$OK) && ($_CONFIG['doubler_uid'] > 0) && ($uid != $_CONFIG['doubler_uid'])) { // Add points to used points $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid='' LIMIT 1", array($points, $_CONFIG['doubler_uid']), __FILE__, __LINE__); // Update mediadata as well if (GET_EXT_VERSION("mediadata") >= "0.0.4") { // Update database MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points); } // Okay, done! $OK = true; } // Update doubler's account only when others are not updated if (!$OK) { // Add points to used doubler points $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET doubler_used=doubler_used+%s WHERE config='0' LIMIT 1", array($points), __FILE__, __LINE__); // Destroy cache if (GET_EXT_VERSION("cache") >= "0.1.2") { if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy(); } } // Update variables to prevent errors $_CONFIG['doubler_used'] += $points; $DOUBLER_POINTS -= $points; // Prepare array $content = array( // Doubler transmission ID 'id' => $id, // Doubled points 'points' => TRANSLATE_COMMA($points), // Timemark 'when' => MAKE_DATETIME($time, "2"), // IP number when the member submitted the doubling form 'ip' => $ip, ); // Load mail template and send mail away... $msg = LOAD_EMAIL_TEMPLATE("member_doubler", $content, $uid); SEND_EMAIL($uid, DOUBLER_MEMBER_SUBJECT, $msg); } } } // Free memory SQL_FREERESULT($result_total); SQL_FREERESULT($result_main); // ?>