A lot has been rewritten, ext-teams added, ext-forced continued:
[mailer.git] / inc / mails / doubler_mails.php
index 69852389ddef0c34a27192fcf136c38966e6ddbd..b7ac0e243e534843b9ad0f3f5cb09cc0e975a616 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 02/16/2005 *
- * ===============                              Last change: 01/21/2006 *
+ * Mailer v0.2.1-FINAL                                Start: 02/16/2005 *
+ * ===================                          Last change: 01/21/2006 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : doubler_mails.php                                 *
  * $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 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 if (!defined('__SECURITY')) {
        die();
 } elseif (!isExtensionActive('doubler')) {
+       // Do not execute when extension is absent
+       return;
+} elseif (!isHtmlOutputMode()) {
+       // Do not execute when script is in CSS mode
        return;
 }
 
-// Do not execute when script is in CSS mode
-if (getOutputMode() != 0) return;
-
 // Initialize variables
-$jackpot = '0'; $user = '0';
-if (isExtensionActive('jackpot')) $jackpot = getJackpotPoints();
+$jackpotPoints = '0';
+$userPoints = '0';
+
+// @TODO Can this be rewritten to a filter?
+if (isExtensionActive('jackpot')) {
+       $jackpotPoints = getJackpotPoints();
+} // END - if
 
 // Get total points of the doubler itself
-$DOUBLER_POINTS = DOUBLER_GET_TOTAL_POINTS_LEFT();
+$DOUBLER_POINTS = getDoublerTotalPointsLeft();
 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
-unsetGetRequestElement('DOUBLER_UID');
-unsetPostRequestElement('DOUBLER_UID');
-setSession('DOUBLER_UID', '');
-if (empty($GLOBALS['doubler_userid'])) $GLOBALS['doubler_userid'] = '0';
+unsetGetRequestParameter('DOUBLER_USERID');
+unsetPostRequestParameter('DOUBLER_USERID');
+setSession('DOUBLER_USERID', '');
+if (empty($GLOBALS['local_doubler_userid'])) $GLOBALS['local_doubler_userid'] = '0';
 
 // Check for doubles which we can pay out
 $result_total = SQL_QUERY_ESC("SELECT
@@ -75,14 +80,13 @@ ON
 WHERE
        u.`status`='CONFIRMED' AND
        d.points <= %s AND
-       d.points >= %s AND
+       d.points >= ({?doubler_min?} * 2) AND
        d.completed='N' AND
        d.is_ref='N'
 ORDER BY
        d.timemark ASC",
        array(
-               $DOUBLER_POINTS,
-               getConfig(('doubler_min') * 2)
+               $DOUBLER_POINTS
        ), __FILE__, __LINE__);
 
 // Check for accounts with limitation
@@ -97,23 +101,23 @@ ON
 WHERE
        u.`status`='CONFIRMED' AND
        d.points <= %s AND
-       d.points >= %s AND
+       d.points >= ({?doubler_min?} * 2) AND
        d.completed='N' AND
        d.is_ref='N'
 ORDER BY
        d.timemark ASC
-LIMIT %d",
+LIMIT {?doubler_max_sent?}",
        array(
-               $DOUBLER_POINTS,
-               getConfig(('doubler_min') * 2),
-               getConfig('doubler_max_sent')
+               $DOUBLER_POINTS
        ), __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'))) {
+if (((!SQL_HASZERONUMS($result_total)) && (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) && (getConfig('doubler_sent_all') == 'Y')) $result_load = $result_total;
+       if ((!SQL_HASZERONUMS($result_total)) && (getConfig('doubler_sent_all') == 'Y')) {
+               $result_load = $result_total;
+       } // END - if
 
        // At least one account was found
        while ($content = SQL_FETCHARRAY($result_load)) {
@@ -125,7 +129,7 @@ if (((SQL_NUMROWS($result_total) > 0) && (getConfig('doubler_sent_all') == 'Y'))
                        // Zero refid when empty (might be helpful!)
                        if (empty($ref)) $ref = '0';
 
-                       if (($ref > 0) && ($GLOBALS['doubler_userid'] == $content['userid']) && (!empty($ref))) {
+                       if (($ref > 0) && ($GLOBALS['local_doubler_userid'] == $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'",
@@ -138,7 +142,8 @@ if (((SQL_NUMROWS($result_total) > 0) && (getConfig('doubler_sent_all') == 'Y'))
                        // Exclude webmaster from doubling...
                        if ($content['userid'] != getConfig('doubler_userid')) {
                                // Add points
-                               addPointsDirectly(sprintf("doubler_%s", strtolower(getConfig('doubler_send_mode'))), $content['userid'], $content['points']);
+                               initReferalSystem();
+                               addPointsThroughReferalSystem(sprintf("doubler_%s", strtolower(getConfig('doubler_send_mode'))), $content['userid'], $content['points']);
                        } // END - if
 
                        // Set entry as "payed"
@@ -148,22 +153,16 @@ if (((SQL_NUMROWS($result_total) > 0) && (getConfig('doubler_sent_all') == 'Y'))
                        $okay = false;
 
                        // Check for jackpot inclusion in doubling process
-                       if (($jackpot > 0) && ($jackpot >= $content['points']) && (getConfig('doubler_jackpot') == 'Y')) {
+                       if (($jackpotPoints > 0) && ($jackpotPoints >= $content['points']) && (getConfig('doubler_jackpot') == 'Y')) {
                                // Subtract points from jackpot
-                               subtractPointsFromJackpot($content['points']);
-                               $jackpot -= $content['points'];
-
-                               // Okay, done!
-                               $okay = true;
+                               $okay = subtractPointsFromJackpot($content['points']);
+                               $jackpotPoints -= $content['points'];
                        } // END - if
 
                        // Exclude also webmaster's id in taking points from webmaster's account
-                       if (($user > 0) && ($user >= $content['points']) && ($okay === false) && (getConfig('doubler_userid') > 0) && ($content['userid'] != getConfig('doubler_userid'))) {
-                               // Add points to used points
-                               subtractPoints('doubler_payout', getConfig('doubler_userid'), $content['points']);
-
-                               // Okay, done!
-                               $okay = true;
+                       if (($userPoints > 0) && ($userPoints >= $content['points']) && ($okay === false) && (getConfig('doubler_userid') > 0) && ($content['userid'] != getConfig('doubler_userid'))) {
+                               // Subtract points
+                               $okay = subtractPoints('doubler_payout', getConfig('doubler_userid'), $content['points']);
                        } // END - if
 
                        // Update doubler's account only when others are not updated
@@ -177,20 +176,11 @@ if (((SQL_NUMROWS($result_total) > 0) && (getConfig('doubler_sent_all') == 'Y'))
                        $DOUBLER_POINTS -= $content['points'];
 
                        // Prepare array
-                       $content = array(
-                               // Doubler transmission id
-                               'id'     => $content['id'],
-                               // Doubled points
-                               'points' => translateComma($content['points']),
-                               // Timemark
-                               'when'   => generateDateTime($content['timemark'], 2),
-                               // IP number when the member submitted the doubling form
-                               'ip'     => $content['remote_ip'],
-                       );
+                       $content['timemark'] = generateDateTime($content['timemark'], 2);
 
                        // Load mail template and send mail away...
                        $message = loadEmailTemplate('member_doubler', $content, $content['userid']);
-                       sendEmail($content['userid'], getMessage('DOUBLER_MEMBER_SUBJECT'), $message);
+                       sendEmail($content['userid'], '{--MEMBER_DOUBLER_SUBJECT--}', $message);
                } // END - if
        } // END - while
 } // END - if