- //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$P."<BR>";
- break;
- }
- // Do we have send maximum mails?
- elseif (($cnt >= $CONFIG['max_send']) || ($cnt2 >= $CONFIG['max_send']))
- {
- // There are some mails left to send for next round, so we reset the status back to NEW (=still not fully delivered)
- $ADD = "";
- if ($cnt <= $DATA[8]) $ADD = ", target_send=target_send-".$cnt;
- $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='NEW', receivers='%s'".$ADD." WHERE id=%d LIMIT 1",
- array(implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);
-
- //* DEBUG: */ echo"*EXIT/L:".__LINE__."*<BR>";
- break;
- }
- }
- else
- {
- // User does not exists so we have add the sender's points back to sender's account
- if (($RECEIVERS[0] == "0") || (empty($RECEIVERS[0])))
- {
- // List was empty
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='SEND' WHERE id=%d LIMIT 1",
- array(bigintval($DATA[0])), __FILE__, __LINE__);
- }
- else
- {
- if ($uid > 0)
- {
- // User does not exists, pay points back
- $POINTS = GET_PAY_POINTS($DATA[5]);
- $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($DATA[1])), __FILE__, __LINE__);
-
- // Update mediadata as well
- if (GET_EXT_VERSION("mediadata") >= "0.0.4")
- {
- // Update database
- //* DEBUG: */ echo "*MEDIA/L:".__LINE__."/".$POINTS."*<BR>";
- MEDIA_UPDATE_ENTRY(array("total_points"), "add", $POINTS);
- }
-
- // Add points together and remove user
- $POINTS_BACK[$DATA[1]] += $POINTS;
- }
- $cnt_back[$DATA[1]]++;
- }
- // Remove entry from list
- unset($DUMMY[$key]);
-
- // Update receivers
- $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET receivers='%s' WHERE id=%d LIMIT 1",
- array(implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);
- }
- }
- }
- }
- if ((sizeof($POINTS_BACK) > 0) && (!empty($POINTS_BACK[0])))
- {
- foreach ($POINTS_BACK as $uid=>$PB)
- {
- // Add points only when we have points left to add and a valid user ID
- if (($PB > 0) && ($uid > 0))
- {
- // We have to pay back some points to the sender (we add them directly :-P)
- $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
- array(bigintval($uid)), __FILE__, __LINE__);
- $DATA[10] = $PB; $DATA[11] = $cnt_back[$uid];
- if (SQL_NUMROWS($result) == 1)
- {
- list($email) = SQL_FETCHROW($result);
- SQL_FREERESULT($result);
-
- // User account does exists, so we can safely pay back!
- $msg = LOAD_EMAIL_TEMPLATE("back-member", "", bigintval($uid));
-
- // Send mail out to member
- SEND_EMAIL($email, MEMBER_BACK_JACKPOT." (".$uid.")", $msg);
- }
- else
- {
- // Add to jackpot
- ADD_JACKPOT($PB);
-
- // Send mail out to admin
- if (GET_EXT_VERSION("admins") >= "0.4.1")
- {
- SEND_ADMIN_EMAILS_PRO(ADMIN_BACK_JACKPOT." (".$uid.")", "back-admin", "", "admin");
- }
- else
- {
- SEND_ADMIN_EMAILS(ADMIN_BACK_JACKPOT." (".$uid.")", LOAD_TEMPLATE("back-admin", "", "admin"));
- }
- }
- }
- }
- }
-}
-
-// Free memory
-SQL_FREERESULT($result_main);
-
-// Only send bonus mail when bonus extension is active and maximum send-mails is not reached
-if ((EXT_IS_ACTIVE("bonus") && ($cnt < $CONFIG['max_send'])))
-{
- // Do we need to send out bonus mails?
- if ($HTML_EXT)
- {
- // 0 1 2 3 4 5 6 7 8 9 10 11
- $result_bonus = SQL_QUERY("SELECT id, subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, html_msg FROM "._MYSQL_PREFIX."_bonus WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);
- }
- else
- {
- // 0 1 2 3 4 5 6 7 8 9 10 11
- $result_bonus = SQL_QUERY("SELECT id, subject, text, receivers, points, time, data_type, timestamp, url, cat_id, target_send, 'N' FROM "._MYSQL_PREFIX."_bonus WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);
- }
-
- if (SQL_NUMROWS($result_bonus) > 0)
- {
- // Send these mails away...
- $cnt2 = "";
- while ($DATA = SQL_FETCHROW($result_bonus))
- {
- // Compile URL
- $DATA[8] = COMPILE_CODE($DATA[8]);
-
- // Message is active in queue
- $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='QUEUE' WHERE id=%d LIMIT 1",
- array(bigintval($DATA[0])), __FILE__, __LINE__);
-
- // "Explode" all receivers into an array
- if (ereg(";", $DATA[3]))
- {
- // There's more than one receiver in the list...
- $RECEIVERS = explode(";", $DATA[3]);
- }
- elseif (!empty($DATA[4]))
- {
- // Only one user left
- $RECEIVERS = array($DATA[3]);
- }
- else
- {
- // No users left
- $RECEIVERS = array("0");
- }
- $DUMMY = $RECEIVERS;
-
- // Now, if we are good little boys and girls Santa left us some user-ids.
- // We can now send mails to them...
- foreach ($RECEIVERS as $key=>$uid)
- {
- // Load personal data
- //* DEBUG: */ echo "*L:".__LINE__."/".$uid."*<BR>";
- $result_user = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
- array(bigintval($uid)), __FILE__, __LINE__);
-
- // Is his data available?
- if (SQL_NUMROWS($result_user) == 1)
- {
- // The final receiver does exists so we can continue...
- list($sname, $fname, $email) = SQL_FETCHROW($result_user);
- //* DEBUG: */ echo "OK!/L:".__LINE__."<BR>";
-
- // Mark this user as "spammed" ;-) And place a line for him...
- if (REMOVE_RECEIVER($DUMMY, $key, $uid, $DATA[0], $DATA[0], true) == "done")
- {
- // Prepare the mail
- $msg = LOAD_EMAIL_TEMPLATE("bonus-mail", $DATA[2], $uid);
-
- // Send mail away
- SEND_EMAIL($email, $DATA[1], $msg, $DATA[11]);
-
- // Count one up and remove entry from dummy array
- $cnt++; unset($DUMMY[$key]);
-
- if (GET_EXT_VERSION("user") >= "0.1.4")
- {
- // Update mails received for receiver
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET emails_received=emails_received+1 WHERE userid=%d LIMIT 1",
- array(bigintval($uid)), __FILE__, __LINE__);
- }
-
- // Do we have send maximum mails?
- if (($cnt >= $CONFIG['max_send']) || (SELECTION_COUNT($DUMMY) == 0))
- {
- // Yes, we have
- //* DEBUG: */ echo "*EXIT/L:".__LINE__."<BR>";
- break;
- }
- }
- }
-
- // Free some memory
- SQL_FREERESULT($result_user);
- }
-
- // Update mediadata if version is 0.0.4 or higher
- if (GET_EXT_VERSION("mediadata") >= "0.0.4")
- {
- // Update entry (or add missing
- $P = $cnt;
- if (!empty($cnt2) && empty($cnt)) $P = $cnt2;
- //* DEBUG: */ echo "+MEDIA/L:".__LINE__."/".$P."+<BR>";
- MEDIA_UPDATE_ENTRY(array("total_send", "bonus_send"), "add", $P);
- }
-
- // Close sending system
- //* DEBUG: */ echo "-L:".__LINE__."/".SELECTION_COUNT($DUMMY)."-<BR>";
- if (SELECTION_COUNT($DUMMY) == 0)
- {
- // Queue reached!
- $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='SEND', target_send='0', receivers='' WHERE id=%d LIMIT 1",
- array(bigintval($DATA[0])), __FILE__, __LINE__);
- //* DEBUG: */ echo "*L:".__LINE__."*<BR>";
-
- // Update mediadata if version is 0.0.4 or higher
- if (GET_EXT_VERSION("mediadata") >= "0.0.4")
- {
- // Update entry (or add missing)
- //* DEBUG: */ echo "*MEDIA/L:".__LINE__."*<BR>";
- MEDIA_UPDATE_ENTRY(array("total_orders", "bonus_orders"), "add", 1);
- }
- }
- elseif ($cnt >= $CONFIG['max_send'])
- {
- // Update bonus pool
- $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='NEW', target_send=%d, receivers='%s' WHERE id=%d LIMIT 1",
- array(SELECTION_COUNT($DUMMY), implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);
- //* DEBUG: */ echo "*L:".__LINE__."<PRE>";
- //* DEBUG: */ print_r($DUMMY);
- //* DEBUG: */ echo "</PRE>\n!!!<BR>";
- break;
- }
- }
- }
-
- // Free memory
- SQL_FREERESULT($result_bonus);
-}