win32 to unix line delimiters changed
[mailer.git] / 0.2.1 / inc / doubler_send.php
index 4ebe37ad0893ca393c2c56b474a91e0144d40d9b..374a8b19e4cc50097ddfe0f10991d6b8cad3a39d 100644 (file)
-<?php\r
-/************************************************************************\r
- * MXChange v0.2.1                                    Start: 02/16/2005 *\r
- * ===============                              Last change: 01/21/2006 *\r
- *                                                                      *\r
- * -------------------------------------------------------------------- *\r
- * File              : doubler_send.php                                 *\r
- * -------------------------------------------------------------------- *\r
- * Short description : Send's out mails for doubled points              *\r
- * -------------------------------------------------------------------- *\r
- * Kurzbeschreibung  : Sendet Mails bei vergueteter Verdoppelung aus    *\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
-// Initialize variables\r
-$jackpot = "0"; $user = "0";\r
-\r
-// Get total points of the doubler itself\r
-$DOUBLER_POINTS = DOUBLER_GET_TOTAL_POINTS_LEFT();\r
-if ($DOUBLER_POINTS == 0)\r
-{\r
-       // Exit here to prevent some SQL errors (SQL_QUERY_ESC doen't insert zeros! We need to fix this...)\r
-       return;\r
-}\r
-\r
-// If not currently doubled set it to zero\r
-unset($_GET['DOUBLER_UID']);\r
-unset($_POST['DOUBLER_UID']);\r
-unset($_COOKIE['DOUBLER_UID']);\r
-if (empty($DOUBLER_UID)) $DOUBLER_UID = "0";\r
-\r
-// Check for doubles which we can pay out\r
-$min = bigintval($CONFIG['doubler_min'] * 2);\r
-$result_total = SQL_QUERY_ESC("SELECT DISTINCT d.id, d.userid, d.points, d.remote_ip, d.timemark\r
-FROM "._MYSQL_PREFIX."_doubler AS d\r
-LEFT JOIN "._MYSQL_PREFIX."_user_data AS u\r
-ON d.userid=u.userid\r
-WHERE u.status='CONFIRMED' AND d.points <= %s AND d.points >= %s AND d.completed='N' AND d.is_ref='N'\r
-ORDER BY d.timemark", array($DOUBLER_POINTS, $min), __FILE__, __LINE__);\r
-\r
-// Check for accounts with limitation\r
-$result_main = SQL_QUERY_ESC("SELECT DISTINCT d.id, d.userid, d.points, d.remote_ip, d.timemark\r
-FROM "._MYSQL_PREFIX."_doubler AS d\r
-LEFT JOIN "._MYSQL_PREFIX."_user_data AS u\r
-ON d.userid=u.userid\r
-WHERE u.status='CONFIRMED' AND d.points <= %s AND d.points >= %s AND d.completed='N' AND d.is_ref='N'\r
-ORDER BY d.timemark\r
-LIMIT %s", array($DOUBLER_POINTS, $min, $CONFIG['doubler_max_sent']), __FILE__, __LINE__);\r
-\r
-if (((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == "Y")) || ((SQL_NUMROWS($result_main) == $CONFIG['doubler_group_sent']) && ($CONFIG['doubler_sent_all'] == "N")))\r
-{\r
-       // Switch to matching SQL resource\r
-       $result_load = $result_main;\r
-       if ((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == "Y")) $result_load = $result_total;\r
-\r
-       // At least one account was found\r
-       while(list($id, $uid, $points, $ip, $time) = SQL_FETCHROW($result_load))\r
-       {\r
-               // Only double when points are enougth!\r
-               if ($DOUBLER_POINTS >= $points)\r
-               {\r
-                       // Check for his ref points\r
-                       $result_ref = SQL_QUERY_ESC("SELECT SUM(points) FROM "._MYSQL_PREFIX."_doubler WHERE refid=%d AND completed='N' AND is_ref='Y'",\r
-                        array(bigintval($uid)), __FILE__, __LINE__);\r
-                       list($ref) = SQL_FETCHROW($result_ref);\r
-\r
-                       // Free memory\r
-                       SQL_FREERESULT($result_ref);\r
-\r
-                       // Zero refid when empty (might be helpful!)\r
-                       if (empty($ref)) $ref = 0;\r
-                       if (($ref > 0) && ($DOUBLER_UID == $uid) && (!empty($ref)))\r
-                       {\r
-                               // Referral points found so add them and set line(s) to completed='Y'\r
-                               $points += $ref;\r
-                               $result_ref = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE refid=%d AND completed='N' AND is_ref='Y'",\r
-                                array(bigintval($uid)), __FILE__, __LINE__);\r
-                       }\r
-                        else\r
-                       {\r
-                               // No referral points found\r
-                               $ref = "0";\r
-                       }\r
-\r
-                       // Exclude webmaster from doubling...\r
-                       if ($uid != $CONFIG['doubler_uid'])\r
-                       {\r
-                               // Add points\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($uid)), __FILE__, __LINE__);\r
-\r
-                               // Update mediadata as well\r
-                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
-                               {\r
-                                       // Update database\r
-                                       MEDIA_UPDATE_ENTRY(array("total_points"), "add", $points);\r
-                               }\r
-                       }\r
-\r
-                       // Set entry as "payed"\r
-                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_doubler SET completed='Y' WHERE id=%d LIMIT 1",\r
-                        array(bigintval($id)), __FILE__, __LINE__);\r
-\r
-                       $OK = false;\r
-                       // Check for jackpot inclusion in doubling process\r
-                       if (($jackpot > 0) && ($jackpot >= $points) && ($CONFIG['doubler_jackpot'] == "Y"))\r
-                       {\r
-                               // Subtract points from jackpot\r
-                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1",\r
-                                array($points), __FILE__, __LINE__);\r
-                               $jackpot -= $jackpot;\r
-\r
-                               // Okay, done!\r
-                               $OK = true;\r
-                       }\r
-\r
-                       // Exclude also webmaster's ID in taking points from webmaster's account\r
-                       if (($user > 0) && ($user >= $points) && (!$OK) && ($CONFIG['doubler_uid'] > 0) && ($uid != $CONFIG['doubler_uid']))\r
-                       {\r
-                               // Add points to used points\r
-                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid='' LIMIT 1",\r
-                                array($points, $CONFIG['doubler_uid']), __FILE__, __LINE__);\r
-\r
-                               // Update mediadata as well\r
-                               if (GET_EXT_VERSION("mediadata") >= "0.0.4")\r
-                               {\r
-                                       // Update database\r
-                                       MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points);\r
-                               }\r
-\r
-                               // Okay, done!\r
-                               $OK = true;\r
-                       }\r
-\r
-                       // Update doubler's account only when others are not updated\r
-                       if (!$OK)\r
-                       {\r
-                               // Add points to used doubler points\r
-                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_config SET doubler_used=doubler_used+%s WHERE config='0' LIMIT 1",\r
-                                array($points), __FILE__, __LINE__);\r
-\r
-                               // Destroy cache\r
-                               if (GET_EXT_VERSION("cache") >= "0.1.2")\r
-                               {\r
-                                       if ($CACHE->cache_file("config", true)) $CACHE->cache_destroy();\r
-                               }\r
-                       }\r
-\r
-                       // Update variables to prevent errors\r
-                       $CONFIG['doubler_used'] += $points;\r
-                       $DOUBLER_POINTS -= $points;\r
-\r
-                       // Prepare array\r
-                       $content = array(\r
-                               // Doubler transmission ID\r
-                               'id'     => $id,\r
-                               // Doubled points\r
-                               'points' => TRANSLATE_COMMA($points),\r
-                               // Timemark\r
-                               'when'   => MAKE_DATETIME($time, "2"),\r
-                               // IP number when the member submitted the doubling form\r
-                               'ip'     => $ip,\r
-                       );\r
-\r
-                       // Load mail template and send mail away...\r
-                       $msg = LOAD_EMAIL_TEMPLATE("member_doubler", $content, $uid);\r
-                       SEND_EMAIL($uid, DOUBLER_MEMBER_SUBJECT, $msg);\r
-               }\r
-       }\r
-}\r
-\r
-// Free memory\r
-SQL_FREERESULT($result_total);\r
-SQL_FREERESULT($result_main);\r
-\r
-//\r
-?>\r
+<?php
+/************************************************************************
+ * MXChange v0.2.1                                    Start: 02/16/2005 *
+ * ===============                              Last change: 01/21/2006 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : doubler_send.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Send's out mails for doubled points              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Sendet Mails bei vergueteter Verdoppelung aus    *
+ * -------------------------------------------------------------------- *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * 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);
+}
+
+// Initialize variables
+$jackpot = "0"; $user = "0";
+
+// Get total points of the doubler itself
+$DOUBLER_POINTS = DOUBLER_GET_TOTAL_POINTS_LEFT();
+if ($DOUBLER_POINTS == 0)
+{
+       // Exit here to prevent some SQL errors (SQL_QUERY_ESC doen't insert zeros! We need to fix this...)
+       return;
+}
+
+// If not currently doubled set it to zero
+unset($_GET['DOUBLER_UID']);
+unset($_POST['DOUBLER_UID']);
+unset($_COOKIE['DOUBLER_UID']);
+if (empty($DOUBLER_UID)) $DOUBLER_UID = "0";
+
+// Check for doubles which we can pay out
+$min = bigintval($CONFIG['doubler_min'] * 2);
+$result_total = 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", 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 %s", 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
+                               $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1",
+                                array($points), __FILE__, __LINE__);
+                               $jackpot -= $jackpot;
+
+                               // 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);
+
+//
+?>