Several minor rewrites, getter GET_JACKPOT_POINTS() added
[mailer.git] / inc / doubler_send.php
index a6ee2d0a49d8679894a50ba10d74cade267933a0..7e40aaa6d5939253cbe5ea0d7f8e1a6f0dc3dd23 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Sendet Mails bei vergueteter Verdoppelung aus    *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * Needs to be in all Files and every File needs "svn propset           *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
  * For more information visit: http://www.mxchange.org                  *
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+if (!defined('__SECURITY')) {
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
        require($INC);
 }
 
 // Initialize variables
-$jackpot = "0"; $user = "0";
+$jackpot = 0; $user = 0;
 
 // Get total points of the doubler itself
 $DOUBLER_POINTS = DOUBLER_GET_TOTAL_POINTS_LEFT();
-if ($DOUBLER_POINTS == 0)
-{
+if ($DOUBLER_POINTS == 0) {
        // Exit here to prevent some SQL errors (SQL_QUERY_ESC doen't insert zeros! We need to fix this...)
        return;
-}
+} // END - if
 
 // 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";
+REQUEST_UNSET_GET('DOUBLER_UID');
+REQUEST_UNSET_POST('DOUBLER_UID');
+setSession('DOUBLER_UID', '');
+if (empty($GLOBALS['doubler_uid'])) $GLOBALS['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
+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__);
+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,
+               getConfig(('doubler_min') * 2)
+       ), __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
+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'
+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')))
-{
+LIMIT %d",
+       array(
+               $DOUBLER_POINTS,
+               getConfig(('doubler_min') * 2),
+               getConfig('doubler_max_sent')
+       ), __FILE__, __LINE__);
+
+// Do we have entries found?
+if (((SQL_NUMROWS($result_total) > 0) && (getConfig('doubler_sent_all') == 'Y')) || ((SQL_NUMROWS($result_main) == getConfig('doubler_group_sent')) && (getConfig('doubler_sent_all') != 'Y'))) {
        // Switch to matching SQL resource
        $result_load = $result_main;
-       if ((SQL_NUMROWS($result_total) > 0) && ($CONFIG['doubler_sent_all'] == 'Y')) $result_load = $result_total;
+       if ((SQL_NUMROWS($result_total) > 0) && (getConfig('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))
-       {
+       while ($content = SQL_FETCHARRAY($result_load)) {
                // Only double when points are enougth!
-               if ($DOUBLER_POINTS >= $points)
-               {
+               if ($DOUBLER_POINTS >= $content['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);
+                       $ref = GET_TOTAL_DATA($content['userid'], 'doubler', 'points', 'refid', false, " AND `completed`='N' AND `is_ref`='Y'");
 
                        // 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";
+
+                       if (($ref > 0) && ($GLOBALS['doubler_uid'] == $content['userid']) && (!empty($ref))) {
+                               // Referal points found so add them and set line(s) to completed='Y'
+                               $content['points'] += $ref;
+                               SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_doubler` SET `completed`='Y' WHERE `refid`=%s AND `completed`='N' AND `is_ref`='Y'",
+                                       array(bigintval($content['userid'])), __FILE__, __LINE__);
+                       } else {
+                               // No referal points found
+                               $ref = 0;
                        }
 
                        // Exclude webmaster from doubling...
-                       if ($uid != $CONFIG['doubler_uid'])
-                       {
+                       if ($content['userid'] != getConfig('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);
-                               }
-                       }
+                               ADD_POINTS_REFSYSTEM_DIRECT(sprintf("doubler_%s", strtolower(getConfig('doubler_send_mode'))), $content['userid'], $content['points']);
+                       } // END - if
 
                        // 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__);
+                       SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_doubler` SET `completed`='Y' WHERE `id`=%s LIMIT 1",
+                               array(bigintval($content['id'])), __FILE__, __LINE__);
+
+                       $okay = false;
 
-                       $OK = false;
                        // Check for jackpot inclusion in doubling process
-                       if (($jackpot > 0) && ($jackpot >= $points) && ($CONFIG['doubler_jackpot'] == 'Y'))
-                       {
+                       if (($jackpot > 0) && ($jackpot >= $content['points']) && (getConfig('doubler_jackpot') == 'Y')) {
                                // Subtract points from jackpot
-                               SUB_JACKPOT($points);
-                               $jackpot -= $points;
+                               SUB_JACKPOT($content['points']);
+                               $jackpot -= $content['points'];
 
                                // Okay, done!
-                               $OK = true;
-                       }
+                               $okay = true;
+                       } // END - if
 
                        // 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']))
-                       {
+                       if (($user > 0) && ($user >= $content['points']) && ($okay === false) && (getConfig('doubler_uid') > 0) && ($content['userid'] != getConfig('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);
-                               }
+                               SUB_POINTS('doubler_payout', getConfig('doubler_uid'), $content['points']);
 
                                // Okay, done!
-                               $OK = true;
-                       }
+                               $okay = true;
+                       } // END - if
 
                        // Update doubler's account only when others are not updated
-                       if (!$OK)
-                       {
+                       if ($okay === false) {
                                // 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();
-                               }
-                       }
+                               updateConfiguration('doubler_used', $content['points'], '+');
+                       } // END - if
 
                        // Update variables to prevent errors
-                       $CONFIG['doubler_used'] += $points;
-                       $DOUBLER_POINTS -= $points;
+                       incrementConfigEntry('doubler_used', $content['points']);
+                       $DOUBLER_POINTS -= $content['points'];
 
                        // Prepare array
                        $content = array(
                                // Doubler transmission ID
-                               'id'     => $id,
+                               'id'     => $content['id'],
                                // Doubled points
-                               'points' => TRANSLATE_COMMA($points),
+                               'points' => translateComma($content['points']),
                                // Timemark
-                               'when'   => MAKE_DATETIME($time, "2"),
+                               'when'   => generateDateTime($content['timemark'], '2'),
                                // IP number when the member submitted the doubling form
-                               'ip'     => $ip,
+                               'ip'     => $content['remote_ip'],
                        );
 
                        // Load mail template and send mail away...
-                       $msg = LOAD_EMAIL_TEMPLATE("member_doubler", $content, $uid);
-                       SEND_EMAIL($uid, DOUBLER_MEMBER_SUBJECT, $msg);
-               }
-       }
-}
+                       $message = LOAD_EMAIL_TEMPLATE('member_doubler', $content, $content['userid']);
+                       sendEmail($content['userid'], getMessage('DOUBLER_MEMBER_SUBJECT'), $message);
+               } // END - if
+       } // END - while
+} // END - if
 
 // Free memory
 SQL_FREERESULT($result_total);