]> git.mxchange.org Git - mailer.git/blobdiff - 0.2.1/inc/pool-update.php
win32 to unix line delimiters changed
[mailer.git] / 0.2.1 / inc / pool-update.php
index c46f422072c073ae2ff986e7250c2fdc136ec312..fabbcbdb0e1093121092b82e4555fa8b4ff157e0 100644 (file)
-<?php\r
-/************************************************************************\r
- * MXChange v0.2.1                                    Start: 11/08/2003 *\r
- * ===============                              Last change: 07/01/2005 *\r
- *                                                                      *\r
- * -------------------------------------------------------------------- *\r
- * File              : pool-update.php                                  *\r
- * -------------------------------------------------------------------- *\r
- * Short description : Sends queued mails from the pool                 *\r
- * -------------------------------------------------------------------- *\r
- * Kurzbeschreibung  : Sendet freigegebene Mails aus den Pool           *\r
- * -------------------------------------------------------------------- *\r
- *                                                                      *\r
- * -------------------------------------------------------------------- *\r
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *\r
- * For more information visit: http://www.mxchange.org                  *\r
- *                                                                      *\r
- * This program is free software; you can redistribute it and/or modify *\r
- * it under the terms of the GNU General Public License as published by *\r
- * the Free Software Foundation; either version 2 of the License, or    *\r
- * (at your option) any later version.                                  *\r
- *                                                                      *\r
- * This program is distributed in the hope that it will be useful,      *\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of       *\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *\r
- * GNU General Public License for more details.                         *\r
- *                                                                      *\r
- * You should have received a copy of the GNU General Public License    *\r
- * along with this program; if not, write to the Free Software          *\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *\r
- * MA  02110-1301  USA                                                  *\r
- ************************************************************************/\r
-\r
-// Some security stuff...\r
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))\r
-{\r
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";\r
-       require($INC);\r
-}\r
-\r
-// Test html extensions once\r
-$HTML_EXT = EXT_IS_ACTIVE("html_mail", true);\r
-\r
-// Check for freed mail orders to send out\r
-if ($HTML_EXT)\r
-{\r
-       //                                0     1        2      3       4          5            6      7        8          9       10\r
-       $result_main = SQL_QUERY("SELECT id, sender, subject, text, receivers, payment_id, timestamp, url, target_send, cat_id, html_msg FROM "._MYSQL_PREFIX."_pool WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);\r
-}\r
- else\r
-{\r
-       //                                0     1        2      3       4          5            6      7        8          9    10\r
-       $result_main = SQL_QUERY("SELECT id, sender, subject, text, receivers, payment_id, timestamp, url, target_send, cat_id, id FROM "._MYSQL_PREFIX."_pool WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);\r
-}\r
-\r
-// Reset variables\r
-$cnt = "0"; $cnt2 = "0"; $LAST_SENT_ID = "0"; $cnt_back = array("0"); $POINTS_BACK = array("0");\r
-if (SQL_NUMROWS($result_main) > 0)\r
-{\r
-       while ($DATA = SQL_FETCHROW($result_main))\r
-       {\r
-               // Check fetched data for HTML\r
-               $HTML = $DATA[10]; if ($HTML == $DATA[0]) $HTML = "N";\r
-\r
-               // Compile URL and subject line\r
-               $DATA[7] = COMPILE_CODE($DATA[7]);\r
-\r
-               // Set mail order as "active". That means it will be sent out\r
-               $result_active = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='ACTIVE' WHERE id=%d AND data_type='NEW' LIMIT 1",\r
-                array($DATA[0]), __FILE__, __LINE__);\r
-               if (SQL_AFFECTEDROWS($result_active) == 1)\r
-               {\r
-                       // "Explode" all receivers into an array\r
-                       if (ereg(";", $DATA[4]))\r
-                       {\r
-                               // There's more than one receiver in the list...\r
-                               $RECEIVERS = explode(";", $DATA[4]);\r
-                       }\r
-                        elseif (!empty($DATA[4]))\r
-                       {\r
-                               // Only one user left\r
-                               $RECEIVERS = array($DATA[4]);\r
-                       }\r
-                        else\r
-                       {\r
-                               // No users left\r
-                               $RECEIVERS = array("0");\r
-                       }\r
-                       $DUMMY = $RECEIVERS;\r
-\r
-                       // Now, if we are good little boys and girls Santa left us some user-ids.\r
-                       // We can now send mails to them...\r
-                       foreach ($RECEIVERS as $key=>$uid)\r
-                       {\r
-                               // Lookup user ID\r
-                               $result_user = SQL_QUERY_ESC("SELECT sex, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",\r
-                                array(bigintval($uid)), __FILE__, __LINE__);\r
-\r
-                               // Is his data available?\r
-                               //* DEBUG: */ echo "*L:".__LINE__."/".SQL_NUMROWS($result_user)."*<BR>";\r
-                               if (SQL_NUMROWS($result_user) == 1)\r
-                               {\r
-                                       // The final receiver does exists so we can continue...\r
-                                       list($salut, $sname, $fname, $email) = SQL_FETCHROW($result_user);\r
-\r
-                                       // Free memory\r
-                                       SQL_FREERESULT($result_user);\r
-\r
-                                       // Do we have a stats entry?\r
-                                       $result_stats = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d AND userid=%d AND timestamp_ordered='%s' LIMIT 1",\r
-                                        array($DATA[0], $DATA[1], $DATA[6]), __FILE__, __LINE__);\r
-\r
-                                       // If there's no stats entry add it!\r
-                                       //* DEBUG: */ echo "!L:".__LINE__."/".SQL_NUMROWS($result_stats)."!<BR>";\r
-                                       if (SQL_NUMROWS($result_stats) == 0)\r
-                                       {\r
-                                               // No entry was found, so we add him!\r
-                                               $result_stats = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_stats (pool_id , userid, cat_id, payment_id, subject, url , max_rec , timestamp_ordered, timestamp_sstart) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' , UNIX_TIMESTAMP())",\r
-                                                array(bigintval($DATA[0]), bigintval($DATA[1]), bigintval($DATA[9]), bigintval($DATA[5]), $DATA[2], $DATA[7], $DATA[8], bigintval($DATA[6])), __FILE__, __LINE__);\r
-\r
-                                               // Receive it's ID for the links table\r
-                                               $result_stats = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d AND userid=%d AND timestamp_ordered='%s' LIMIT 1",\r
-                                                array(bigintval($DATA[0]), bigintval($DATA[1]), bigintval($DATA[6])), __FILE__, __LINE__);\r
-                                       }\r
-\r
-                                       //* DEBUG: */ echo "!L:".__LINE__."/".SQL_NUMROWS($result_stats)."!<BR>";\r
-                                       if (SQL_NUMROWS($result_stats) == 1)\r
-                                       {\r
-                                               // We got one!\r
-                                               list($stats_id) = SQL_FETCHROW($result_stats);\r
-                                               SQL_FREERESULT($result_stats);\r
-\r
-                                               // Mark this user as "spammed" ;-) And place a line for him...\r
-                                               //* DEBUG: */ echo "?L:".__LINE__."/".$DUMMY."/".$key."/".$uid."(".$DATA[1].")/".$DATA[0]."/".$stats_id."?<BR>";\r
-                                               switch (REMOVE_RECEIVER($DUMMY, $key, bigintval($uid), bigintval($DATA[0]), bigintval($stats_id)))\r
-                                               {\r
-                                               case "done":\r
-                                                       // Prepare the mail\r
-                                                       $DATA[11] = bigintval($stats_id);\r
-                                                       $DATA[12] = $sname;\r
-                                                       $DATA[13] = $fname;\r
-                                                       $DATA[14] = TRANSLATE_SEX($salut);\r
-\r
-                                                       // Load message template\r
-                                                       $msg = LOAD_EMAIL_TEMPLATE("normal-mail", $DATA[3], bigintval($uid));\r
-\r
-                                                       // Send mail away\r
-                                                       SEND_EMAIL($email, $DATA[2], $msg, $HTML);\r
-\r
-                                                       // Count sent mails...\r
-                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET emails_sent=emails_sent+1 WHERE userid=%d LIMIT 1",\r
-                                                        array(bigintval($DATA[1])), __FILE__, __LINE__);\r
-\r
-                                                       if (GET_EXT_VERSION("user") >= "0.1.4")\r
-                                                       {\r
-                                                               // Update mails received for receiver\r
-                                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET emails_received=emails_received+1 WHERE userid=%d LIMIT 1",\r
-                                                               array(bigintval($uid)), __FILE__, __LINE__);\r
-                                                       }\r
-\r
-                                                       // Update mediadata if version is 0.0.4 or higher\r
-                                                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
-                                                       {\r
-                                                               // Update entry (or add missing)\r
-                                                               //* DEBUG: */ echo "*MEDIA/L:".__LINE__."*<BR>";\r
-                                                               MEDIA_UPDATE_ENTRY(array("total_send", "normal_send"), "add", 1);\r
-                                                       }\r
-\r
-                                                       // And count up the mail\r
-                                                       $cnt++;\r
-                                                       //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$cnt."*<BR>";\r
-                                                       break;\r
-\r
-                                               case "already":\r
-                                                       // Entry already found, but we still count one up!\r
-                                                       $cnt++;\r
-                                                       //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$cnt."<BR>";\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-\r
-                                       // Do we have reached the maximum to send mails? || ($CONFIG['max_send'] >= $cnt)\r
-                                       //* DEBUG: */ echo "*L:".__LINE__."/".$cnt.">=".$DATA[8]."/".$CONFIG['max_send'].">=".$cnt."/".$LAST_SENT_ID."!=".$DATA[0]."*<BR>";\r
-                                       if ((($cnt >= $DATA[8])) && ($LAST_SENT_ID != $DATA[0]))\r
-                                       {\r
-                                               // Yes we do, so we notify admin and sender about fully sent mail!\r
-                                               if (GET_EXT_VERSION("admins") >= "0.4.1")\r
-                                               {\r
-                                                       // New method\r
-                                                       SEND_ADMIN_EMAILS_PRO(ADMIN_SUBJ_SEND_DONE, "done-admin", $DATA[3], $uid);\r
-                                               }\r
-                                                else\r
-                                               {\r
-                                                       // Old method\r
-                                                       SEND_ADMIN_EMAILS(ADMIN_SUBJ_SEND_DONE, LOAD_EMAIL_TEMPLATE("done-admin", $DATA[3], $uid));\r
-                                               }\r
-\r
-                                               // Get sender's data\r
-                                               $result_sender = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",\r
-                                                array(bigintval($DATA[1])), __FILE__, __LINE__);\r
-                                               if (SQL_NUMROWS($result_sender) == 1)\r
-                                               {\r
-                                                       // Load data and prepare mail\r
-                                                       list($sname, $fname, $email) = SQL_FETCHROW($result_sender);\r
-                                                       SQL_FREERESULT($result_sender);\r
-                                                       $msg = LOAD_EMAIL_TEMPLATE("done-member", $DATA[3], $DATA[1]);\r
-\r
-                                                       // Send it also waway\r
-                                                       SEND_EMAIL($email, MEMBER_SUBJ_SEND_DONE, $msg);\r
-                                               }\r
-\r
-                                               // Set status to SEND because we completely send it away\r
-                                               $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='SEND', target_send='0', receivers='' WHERE id=%d LIMIT 1",\r
-                                                array(bigintval($DATA[0])), __FILE__, __LINE__);\r
-\r
-                                               // Update send-completed-time\r
-                                               $result_user = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_stats SET timestamp_send=UNIX_TIMESTAMP() WHERE pool_id=%d LIMIT 1",\r
-                                                array(bigintval($DATA[0])), __FILE__, __LINE__);\r
-\r
-                                               $LAST_SENT_ID = $DATA[0]; $cnt = "0";\r
-                                               $cnt2 += $cnt;\r
-\r
-                                               // Update mediadata if version is 0.0.4 or higher\r
-                                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
-                                               {\r
-                                                       // Update entry (or add missing)\r
-                                                       //* DEBUG: */ echo "*MEDIA/L:".__LINE__."*<BR>";\r
-                                                       MEDIA_UPDATE_ENTRY(array("total_orders", "normal_orders"), "add", 1);\r
-                                               }\r
-\r
-                                               //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$P."<BR>";\r
-                                               break;\r
-                                       }\r
-                                       // Do we have send maximum mails?\r
-                                        elseif (($cnt >= $CONFIG['max_send']) || ($cnt2 >= $CONFIG['max_send']))\r
-                                       {\r
-                                               // There are some mails left to send for next round, so we reset the status back to NEW (=still not fully delivered)\r
-                                               $ADD = "";\r
-                                               if ($cnt <= $DATA[8]) $ADD = ", target_send=target_send-".$cnt;\r
-                                               $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='NEW', receivers='%s'".$ADD." WHERE id=%d LIMIT 1",\r
-                                                array(implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);\r
-\r
-                                               //* DEBUG: */ echo"*EXIT/L:".__LINE__."*<BR>";\r
-                                               break;\r
-                                       }\r
-                               }\r
-                                else\r
-                               {\r
-                                       // User does not exists so we have add the sender's points back to sender's account\r
-                                       if (($RECEIVERS[0] == "0") || (empty($RECEIVERS[0])))\r
-                                       {\r
-                                               // List was empty\r
-                                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='SEND' WHERE id=%d LIMIT 1",\r
-                                                array(bigintval($DATA[0])), __FILE__, __LINE__);\r
-                                       }\r
-                                        else\r
-                                       {\r
-                                               if ($uid > 0)\r
-                                               {\r
-                                                       // User does not exists, pay points back\r
-                                                       $POINTS = GET_PAY_POINTS($DATA[5]);\r
-                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET points=points+%s WHERE userid=%d AND ref_depth='0' LIMIT 1",\r
-                                                        array($POINTS, bigintval($DATA[1])), __FILE__, __LINE__);\r
-\r
-                                                       // Update mediadata as well\r
-                                                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
-                                                       {\r
-                                                               // Update database\r
-                                                               //* DEBUG: */ echo "*MEDIA/L:".__LINE__."/".$POINTS."*<BR>";\r
-                                                               MEDIA_UPDATE_ENTRY(array("total_points"), "add", $POINTS);\r
-                                                       }\r
-\r
-                                                       // Add points together and remove user\r
-                                                       $POINTS_BACK[$DATA[1]] += $POINTS;\r
-                                               }\r
-                                               $cnt_back[$DATA[1]]++;\r
-                                       }\r
-                                       // Remove entry from list\r
-                                       unset($DUMMY[$key]);\r
-\r
-                                       // Update receivers\r
-                                       $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET receivers='%s' WHERE id=%d LIMIT 1",\r
-                                        array(implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       if ((sizeof($POINTS_BACK) > 0) && (!empty($POINTS_BACK[0])))\r
-       {\r
-               foreach ($POINTS_BACK as $uid=>$PB)\r
-               {\r
-                       // Add points only when we have points left to add and a valid user ID\r
-                       if (($PB > 0) && ($uid > 0))\r
-                       {\r
-                               // We have to pay back some points to the sender (we add them directly :-P)\r
-                               $result = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",\r
-                                array(bigintval($uid)), __FILE__, __LINE__);\r
-                               $DATA[10] = $PB; $DATA[11] = $cnt_back[$uid];\r
-                               if (SQL_NUMROWS($result) == 1)\r
-                               {\r
-                                       list($email) = SQL_FETCHROW($result);\r
-                                       SQL_FREERESULT($result);\r
-\r
-                                       // User account does exists, so we can safely pay back!\r
-                                       $msg = LOAD_EMAIL_TEMPLATE("back-member", "", bigintval($uid));\r
-\r
-                                       // Send mail out to member\r
-                                       SEND_EMAIL($email, MEMBER_BACK_JACKPOT." (".$uid.")", $msg);\r
-                               }\r
-                                else\r
-                               {\r
-                                       // Add to jackpot\r
-                                       ADD_JACKPOT($PB);\r
-\r
-                                       // Send mail out to admin\r
-                                       if (GET_EXT_VERSION("admins") >= "0.4.1")\r
-                                       {\r
-                                               SEND_ADMIN_EMAILS_PRO(ADMIN_BACK_JACKPOT." (".$uid.")", "back-admin", "", "admin");\r
-                                       }\r
-                                        else\r
-                                       {\r
-                                               SEND_ADMIN_EMAILS(ADMIN_BACK_JACKPOT." (".$uid.")", LOAD_TEMPLATE("back-admin", "", "admin"));\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-// Free memory\r
-SQL_FREERESULT($result_main);\r
-\r
-// Only send bonus mail when bonus extension is active and maximum send-mails is not reached\r
-if ((EXT_IS_ACTIVE("bonus") && ($cnt < $CONFIG['max_send'])))\r
-{\r
-       // Do we need to send out bonus mails?\r
-       if ($HTML_EXT)\r
-       {\r
-               //                                 0     1       2        3        4      5       6          7       8      9         10         11\r
-               $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__);\r
-       }\r
-        else\r
-       {\r
-               //                                 0     1       2        3        4      5       6          7       8      9         10      11\r
-               $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__);\r
-       }\r
-\r
-       if (SQL_NUMROWS($result_bonus) > 0)\r
-       {\r
-               // Send these mails away...\r
-               $cnt2 = "";\r
-               while ($DATA = SQL_FETCHROW($result_bonus))\r
-               {\r
-                       // Compile URL\r
-                       $DATA[8] = COMPILE_CODE($DATA[8]);\r
-\r
-                       // Message is active in queue\r
-                       $result_queue = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='QUEUE' WHERE id=%d LIMIT 1",\r
-                        array(bigintval($DATA[0])), __FILE__, __LINE__);\r
-\r
-                       // "Explode" all receivers into an array\r
-                       if (ereg(";", $DATA[3]))\r
-                       {\r
-                               // There's more than one receiver in the list...\r
-                               $RECEIVERS = explode(";", $DATA[3]);\r
-                       }\r
-                        elseif (!empty($DATA[4]))\r
-                       {\r
-                               // Only one user left\r
-                               $RECEIVERS = array($DATA[3]);\r
-                       }\r
-                        else\r
-                       {\r
-                               // No users left\r
-                               $RECEIVERS = array("0");\r
-                       }\r
-                       $DUMMY = $RECEIVERS;\r
-\r
-                       // Now, if we are good little boys and girls Santa left us some user-ids.\r
-                       // We can now send mails to them...\r
-                       foreach ($RECEIVERS as $key=>$uid)\r
-                       {\r
-                               // Load personal data\r
-                               //* DEBUG: */ echo "*L:".__LINE__."/".$uid."*<BR>";\r
-                               $result_user = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",\r
-                                array(bigintval($uid)), __FILE__, __LINE__);\r
-\r
-                               // Is his data available?\r
-                               if (SQL_NUMROWS($result_user) == 1)\r
-                               {\r
-                                       // The final receiver does exists so we can continue...\r
-                                       list($sname, $fname, $email) = SQL_FETCHROW($result_user);\r
-                                       //* DEBUG: */ echo "OK!/L:".__LINE__."<BR>";\r
-\r
-                                       // Mark this user as "spammed" ;-) And place a line for him...\r
-                                       if (REMOVE_RECEIVER($DUMMY, $key, $uid, $DATA[0], $DATA[0], true) == "done")\r
-                                       {\r
-                                               // Prepare the mail\r
-                                               $msg = LOAD_EMAIL_TEMPLATE("bonus-mail", $DATA[2], $uid);\r
-\r
-                                               // Send mail away\r
-                                               SEND_EMAIL($email, $DATA[1], $msg, $DATA[11]);\r
-\r
-                                               // Count one up and remove entry from dummy array\r
-                                               $cnt++; unset($DUMMY[$key]);\r
-\r
-                                               if (GET_EXT_VERSION("user") >= "0.1.4")\r
-                                               {\r
-                                                       // Update mails received for receiver\r
-                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET emails_received=emails_received+1 WHERE userid=%d LIMIT 1",\r
-                                                        array(bigintval($uid)), __FILE__, __LINE__);\r
-                                               }\r
-\r
-                                               // Do we have send maximum mails?\r
-                                               if (($cnt >= $CONFIG['max_send']) || (SELECTION_COUNT($DUMMY) == 0))\r
-                                               {\r
-                                                       // Yes, we have\r
-                                                       //* DEBUG: */ echo "*EXIT/L:".__LINE__."<BR>";\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                               }\r
-\r
-                               // Free some memory\r
-                               SQL_FREERESULT($result_user);\r
-                       }\r
-\r
-                       // Update mediadata if version is 0.0.4 or higher\r
-                       if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
-                       {\r
-                               // Update entry (or add missing\r
-                               $P = $cnt;\r
-                               if (!empty($cnt2) && empty($cnt)) $P = $cnt2;\r
-                               //* DEBUG: */ echo "+MEDIA/L:".__LINE__."/".$P."+<BR>";\r
-                               MEDIA_UPDATE_ENTRY(array("total_send", "bonus_send"), "add", $P);\r
-                       }\r
-\r
-                       // Close sending system\r
-                       //* DEBUG: */ echo "-L:".__LINE__."/".SELECTION_COUNT($DUMMY)."-<BR>";\r
-                       if (SELECTION_COUNT($DUMMY) == 0)\r
-                       {\r
-                               // Queue reached!\r
-                               $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='SEND', target_send='0', receivers='' WHERE id=%d LIMIT 1",\r
-                                array(bigintval($DATA[0])), __FILE__, __LINE__);\r
-                               //* DEBUG: */ echo "*L:".__LINE__."*<BR>";\r
-\r
-                               // Update mediadata if version is 0.0.4 or higher\r
-                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
-                               {\r
-                                       // Update entry (or add missing)\r
-                                       //* DEBUG: */ echo "*MEDIA/L:".__LINE__."*<BR>";\r
-                                       MEDIA_UPDATE_ENTRY(array("total_orders", "bonus_orders"), "add", 1);\r
-                               }\r
-                       }\r
-                        elseif ($cnt >= $CONFIG['max_send'])\r
-                       {\r
-                               // Update bonus pool\r
-                               $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET data_type='NEW', target_send=%d, receivers='%s' WHERE id=%d LIMIT 1",\r
-                                array(SELECTION_COUNT($DUMMY), implode(";", $DUMMY), bigintval($DATA[0])), __FILE__, __LINE__);\r
-                               //* DEBUG: */ echo "*L:".__LINE__."<PRE>";\r
-                               //* DEBUG: */ print_r($DUMMY);\r
-                               //* DEBUG: */ echo "</PRE>\n!!!<BR>";\r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-\r
-       // Free memory\r
-       SQL_FREERESULT($result_bonus);\r
-}\r
-\r
-// Remove message (IMPORTANT!)\r
-unset($msg);\r
-\r
-//\r
-?>\r
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 11/08/2003 *
+ * ===============                              Last change: 07/01/2005 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : pool-update.php                                  *
+ * -------------------------------------------------------------------- *
+ * Short description : Sends queued mails from the pool                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sendet freigegebene Mails aus den Pool           *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * For more information visit: http://www.mxchange.org                  *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       require($INC);
+}
+
+// Test html extensions once
+$HTML_EXT = EXT_IS_ACTIVE("html_mail", true);
+
+// Check for freed mail orders to send out
+if ($HTML_EXT)
+{
+       //                                0     1        2      3       4          5            6      7        8          9       10
+       $result_main = SQL_QUERY("SELECT id, sender, subject, text, receivers, payment_id, timestamp, url, target_send, cat_id, html_msg FROM "._MYSQL_PREFIX."_pool WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);
+}
+ else
+{
+       //                                0     1        2      3       4          5            6      7        8          9    10
+       $result_main = SQL_QUERY("SELECT id, sender, subject, text, receivers, payment_id, timestamp, url, target_send, cat_id, id FROM "._MYSQL_PREFIX."_pool WHERE data_type='NEW' ORDER BY timestamp DESC", __FILE__, __LINE__);
+}
+
+// Reset variables
+$cnt = "0"; $cnt2 = "0"; $LAST_SENT_ID = "0"; $cnt_back = array("0"); $POINTS_BACK = array("0");
+if (SQL_NUMROWS($result_main) > 0)
+{
+       while ($DATA = SQL_FETCHROW($result_main))
+       {
+               // Check fetched data for HTML
+               $HTML = $DATA[10]; if ($HTML == $DATA[0]) $HTML = "N";
+
+               // Compile URL and subject line
+               $DATA[7] = COMPILE_CODE($DATA[7]);
+
+               // Set mail order as "active". That means it will be sent out
+               $result_active = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='ACTIVE' WHERE id=%d AND data_type='NEW' LIMIT 1",
+                array($DATA[0]), __FILE__, __LINE__);
+               if (SQL_AFFECTEDROWS($result_active) == 1)
+               {
+                       // "Explode" all receivers into an array
+                       if (ereg(";", $DATA[4]))
+                       {
+                               // There's more than one receiver in the list...
+                               $RECEIVERS = explode(";", $DATA[4]);
+                       }
+                        elseif (!empty($DATA[4]))
+                       {
+                               // Only one user left
+                               $RECEIVERS = array($DATA[4]);
+                       }
+                        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)
+                       {
+                               // Lookup user ID
+                               $result_user = SQL_QUERY_ESC("SELECT sex, surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                array(bigintval($uid)), __FILE__, __LINE__);
+
+                               // Is his data available?
+                               //* DEBUG: */ echo "*L:".__LINE__."/".SQL_NUMROWS($result_user)."*<BR>";
+                               if (SQL_NUMROWS($result_user) == 1)
+                               {
+                                       // The final receiver does exists so we can continue...
+                                       list($salut, $sname, $fname, $email) = SQL_FETCHROW($result_user);
+
+                                       // Free memory
+                                       SQL_FREERESULT($result_user);
+
+                                       // Do we have a stats entry?
+                                       $result_stats = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d AND userid=%d AND timestamp_ordered='%s' LIMIT 1",
+                                        array($DATA[0], $DATA[1], $DATA[6]), __FILE__, __LINE__);
+
+                                       // If there's no stats entry add it!
+                                       //* DEBUG: */ echo "!L:".__LINE__."/".SQL_NUMROWS($result_stats)."!<BR>";
+                                       if (SQL_NUMROWS($result_stats) == 0)
+                                       {
+                                               // No entry was found, so we add him!
+                                               $result_stats = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_stats (pool_id , userid, cat_id, payment_id, subject, url , max_rec , timestamp_ordered, timestamp_sstart) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' , UNIX_TIMESTAMP())",
+                                                array(bigintval($DATA[0]), bigintval($DATA[1]), bigintval($DATA[9]), bigintval($DATA[5]), $DATA[2], $DATA[7], $DATA[8], bigintval($DATA[6])), __FILE__, __LINE__);
+
+                                               // Receive it's ID for the links table
+                                               $result_stats = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d AND userid=%d AND timestamp_ordered='%s' LIMIT 1",
+                                                array(bigintval($DATA[0]), bigintval($DATA[1]), bigintval($DATA[6])), __FILE__, __LINE__);
+                                       }
+
+                                       //* DEBUG: */ echo "!L:".__LINE__."/".SQL_NUMROWS($result_stats)."!<BR>";
+                                       if (SQL_NUMROWS($result_stats) == 1)
+                                       {
+                                               // We got one!
+                                               list($stats_id) = SQL_FETCHROW($result_stats);
+                                               SQL_FREERESULT($result_stats);
+
+                                               // Mark this user as "spammed" ;-) And place a line for him...
+                                               //* DEBUG: */ echo "?L:".__LINE__."/".$DUMMY."/".$key."/".$uid."(".$DATA[1].")/".$DATA[0]."/".$stats_id."?<BR>";
+                                               switch (REMOVE_RECEIVER($DUMMY, $key, bigintval($uid), bigintval($DATA[0]), bigintval($stats_id)))
+                                               {
+                                               case "done":
+                                                       // Prepare the mail
+                                                       $DATA[11] = bigintval($stats_id);
+                                                       $DATA[12] = $sname;
+                                                       $DATA[13] = $fname;
+                                                       $DATA[14] = TRANSLATE_SEX($salut);
+
+                                                       // Load message template
+                                                       $msg = LOAD_EMAIL_TEMPLATE("normal-mail", $DATA[3], bigintval($uid));
+
+                                                       // Send mail away
+                                                       SEND_EMAIL($email, $DATA[2], $msg, $HTML);
+
+                                                       // Count sent mails...
+                                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET emails_sent=emails_sent+1 WHERE userid=%d LIMIT 1",
+                                                        array(bigintval($DATA[1])), __FILE__, __LINE__);
+
+                                                       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__);
+                                                       }
+
+                                                       // 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_send", "normal_send"), "add", 1);
+                                                       }
+
+                                                       // And count up the mail
+                                                       $cnt++;
+                                                       //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$cnt."*<BR>";
+                                                       break;
+
+                                               case "already":
+                                                       // Entry already found, but we still count one up!
+                                                       $cnt++;
+                                                       //* DEBUG: */ echo"*EXIT/L:".__LINE__."/".$cnt."<BR>";
+                                                       break;
+                                               }
+                                       }
+
+                                       // Do we have reached the maximum to send mails? || ($CONFIG['max_send'] >= $cnt)
+                                       //* DEBUG: */ echo "*L:".__LINE__."/".$cnt.">=".$DATA[8]."/".$CONFIG['max_send'].">=".$cnt."/".$LAST_SENT_ID."!=".$DATA[0]."*<BR>";
+                                       if ((($cnt >= $DATA[8])) && ($LAST_SENT_ID != $DATA[0]))
+                                       {
+                                               // Yes we do, so we notify admin and sender about fully sent mail!
+                                               if (GET_EXT_VERSION("admins") >= "0.4.1")
+                                               {
+                                                       // New method
+                                                       SEND_ADMIN_EMAILS_PRO(ADMIN_SUBJ_SEND_DONE, "done-admin", $DATA[3], $uid);
+                                               }
+                                                else
+                                               {
+                                                       // Old method
+                                                       SEND_ADMIN_EMAILS(ADMIN_SUBJ_SEND_DONE, LOAD_EMAIL_TEMPLATE("done-admin", $DATA[3], $uid));
+                                               }
+
+                                               // Get sender's data
+                                               $result_sender = SQL_QUERY_ESC("SELECT surname, family, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                                                array(bigintval($DATA[1])), __FILE__, __LINE__);
+                                               if (SQL_NUMROWS($result_sender) == 1)
+                                               {
+                                                       // Load data and prepare mail
+                                                       list($sname, $fname, $email) = SQL_FETCHROW($result_sender);
+                                                       SQL_FREERESULT($result_sender);
+                                                       $msg = LOAD_EMAIL_TEMPLATE("done-member", $DATA[3], $DATA[1]);
+
+                                                       // Send it also waway
+                                                       SEND_EMAIL($email, MEMBER_SUBJ_SEND_DONE, $msg);
+                                               }
+
+                                               // Set status to SEND because we completely send it away
+                                               $result_done = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_pool SET data_type='SEND', target_send='0', receivers='' WHERE id=%d LIMIT 1",
+                                                array(bigintval($DATA[0])), __FILE__, __LINE__);
+
+                                               // Update send-completed-time
+                                               $result_user = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_stats SET timestamp_send=UNIX_TIMESTAMP() WHERE pool_id=%d LIMIT 1",
+                                                array(bigintval($DATA[0])), __FILE__, __LINE__);
+
+                                               $LAST_SENT_ID = $DATA[0]; $cnt = "0";
+                                               $cnt2 += $cnt;
+
+                                               // 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", "normal_orders"), "add", 1);
+                                               }
+
+                                               //* 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);
+}
+
+// Remove message (IMPORTANT!)
+unset($msg);
+
+//
+?>