]> git.mxchange.org Git - mailer.git/blobdiff - inc/pool/pool-user.php
The usual asset of bugfixes/improvements:
[mailer.git] / inc / pool / pool-user.php
index 5293a5b28a1ae8b0fe4e44a8d255acbe951b2164..c2bcfda3f85eae8af779daebd452b75c79176ecf 100644 (file)
@@ -41,7 +41,7 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Don't run on daily reset
 } // END - if
 
 // Don't run on daily reset
-if (isResetModeEnabled()) {
+if ((isResetModeEnabled()) || (!isHtmlOutputMode())) {
        // Skip here
        return false;
 } elseif (!isExtensionActive('user')) {
        // Skip here
        return false;
 } elseif (!isExtensionActive('user')) {
@@ -49,18 +49,33 @@ if (isResetModeEnabled()) {
        return false;
 }
 
        return false;
 }
 
-// Need this here
+// No HTML is default
+$HTML = '';
+
 // Check for freed mail orders to send out
 if (isExtensionActive('html_mail')) {
 // Check for freed mail orders to send out
 if (isExtensionActive('html_mail')) {
-       //                                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__);
-}
+       // With HTML mails
+       $HTML = ', `html_msg`';
+} // END - if
+
+// Main query
+$result_main = SQL_QUERY("SELECT
+       `id`, `sender` AS `sender_userid`, `subject`, `text`, `receivers`,
+       `payment_id`, `timestamp`, `url`, `target_send`, `cat_id`
+       ".$HTML."
+FROM
+       `{?_MYSQL_PREFIX?}_pool`
+WHERE
+       `data_type`='NEW'
+ORDER BY
+       `timestamp` DESC", __FILE__, __LINE__);
 
 // Reset variables
 
 // Reset variables
-$count2 = '0'; $lastSentId = '0'; $count_back = array(0); $pointsBack = array(0);
+$count2 = '0';
+$lastSentId = '0';
+$count_back = array(0);
+$pointsBack = array(0);
+
 if (!SQL_HASZERONUMS($result_main)) {
        // Parse all mails
        while ($DATA = SQL_FETCHARRAY($result_main, 0, false)) {
 if (!SQL_HASZERONUMS($result_main)) {
        // Parse all mails
        while ($DATA = SQL_FETCHARRAY($result_main, 0, false)) {
@@ -69,44 +84,44 @@ if (!SQL_HASZERONUMS($result_main)) {
                        array($DATA['id']), __FILE__, __LINE__);
 
                // Check fetched data for HTML
                        array($DATA['id']), __FILE__, __LINE__);
 
                // Check fetched data for HTML
-               $HTML = 'N';
-               if (isset($DATA['html_msg'])) $HTML = $DATA['html_msg'];
+               $isHtml = 'N';
+               if (isset($DATA['html_msg'])) $isHtml = $DATA['html_msg'];
 
                // Entry updated?
                if (!SQL_HASZEROAFFECTED()) {
                        // "Explode" all receivers into an array
                        if (isInString(';', $DATA['receivers'])) {
                                // There's more than one receiver in the list...
 
                // Entry updated?
                if (!SQL_HASZEROAFFECTED()) {
                        // "Explode" all receivers into an array
                        if (isInString(';', $DATA['receivers'])) {
                                // There's more than one receiver in the list...
-                               $receiverS = explode(';', $DATA['receivers']);
+                               $receivers = explode(';', $DATA['receivers']);
                        } elseif (!empty($DATA['receivers'])) {
                                // Only one user left
                        } elseif (!empty($DATA['receivers'])) {
                                // Only one user left
-                               $receiverS = array($DATA['receivers']);
+                               $receivers = array($DATA['receivers']);
                        } else {
                                // No users left
                        } else {
                                // No users left
-                               $receiverS = array(0);
+                               $receivers = array(0);
                        }
                        }
-                       $dummy = $receiverS;
+                       $dummy = $receivers;
 
                        // Now, if we are good little boys and girls Santa Claus left us some user-ids.
                        // We can now send mails to them...
 
                        // Now, if we are good little boys and girls Santa Claus left us some user-ids.
                        // We can now send mails to them...
-                       foreach ($receiverS as $key => $userid) {
+                       foreach ($receivers as $key => $userid) {
                                // Lookup user id
                                //* DEBUG: */ debugOutput('*L:'.__LINE__.'/'.SQL_NUMROWS($result_user).'*');
                                if (fetchUserData($userid)) {
                                        // Do we have a stats entry?
                                        $result_stats = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `pool_id`=%s AND `userid`=%s AND timestamp_ordered='%s' LIMIT 1",
                                // Lookup user id
                                //* DEBUG: */ debugOutput('*L:'.__LINE__.'/'.SQL_NUMROWS($result_user).'*');
                                if (fetchUserData($userid)) {
                                        // Do we have a stats entry?
                                        $result_stats = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `pool_id`=%s AND `userid`=%s AND timestamp_ordered='%s' LIMIT 1",
-                                               array($DATA['id'], $DATA['sender'], $DATA['timestamp']), __FILE__, __LINE__);
+                                               array($DATA['id'], $DATA['sender_userid'], $DATA['timestamp']), __FILE__, __LINE__);
 
                                        // If there's no stats entry add it!
                                        //* DEBUG: */ debugOutput('!L:'.__LINE__.'/'.SQL_NUMROWS($result_stats).'!');
                                        if (SQL_HASZERONUMS($result_stats)) {
                                                // No entry was found, so we add him!
                                                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())",
 
                                        // If there's no stats entry add it!
                                        //* DEBUG: */ debugOutput('!L:'.__LINE__.'/'.SQL_NUMROWS($result_stats).'!');
                                        if (SQL_HASZERONUMS($result_stats)) {
                                                // No entry was found, so we add him!
                                                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['id']), bigintval($DATA['sender']), bigintval($DATA['cat_id']), bigintval($DATA['payment_id']), $DATA['subject'], $DATA['url'], $DATA['target_send'], bigintval($DATA['timestamp'])), __FILE__, __LINE__);
+                                                       array(bigintval($DATA['id']), bigintval($DATA['sender_userid']), bigintval($DATA['cat_id']), bigintval($DATA['payment_id']), $DATA['subject'], $DATA['url'], $DATA['target_send'], bigintval($DATA['timestamp'])), __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`=%s AND `userid`=%s AND timestamp_ordered='%s' LIMIT 1",
 
                                                // Receive it's id for the links table
                                                $result_stats = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `pool_id`=%s AND `userid`=%s AND timestamp_ordered='%s' LIMIT 1",
-                                                       array(bigintval($DATA['id']), bigintval($DATA['sender']), bigintval($DATA['timestamp'])), __FILE__, __LINE__);
+                                                       array(bigintval($DATA['id']), bigintval($DATA['sender_userid']), bigintval($DATA['timestamp'])), __FILE__, __LINE__);
                                        } // END - if
 
                                        //* DEBUG: */ debugOutput('!L:'.__LINE__.'/'.SQL_NUMROWS($result_stats).'!');
                                        } // END - if
 
                                        //* DEBUG: */ debugOutput('!L:'.__LINE__.'/'.SQL_NUMROWS($result_stats).'!');
@@ -114,9 +129,11 @@ if (!SQL_HASZERONUMS($result_main)) {
                                                // We got one!
                                                list($stats_id) = SQL_FETCHROW($result_stats);
 
                                                // We got one!
                                                list($stats_id) = SQL_FETCHROW($result_stats);
 
-                                               // Mark this user as "spammed" ;-) And place a line for him...
-                                               //* DEBUG: */ debugOutput('?L:'.__LINE__.'/'.$dummy.'/'.$key.'/'.$userid.'('.['sender'].')/'.$DATA['id'].'/'.$stats_id.'?');
-                                               switch (removeReceiver($dummy, $key, bigintval($userid), bigintval($DATA['id']), bigintval($stats_id))) {
+                                               // Remove receiver from list
+                                               $status = removeReceiver($dummy, $key, bigintval($userid), bigintval($DATA['id']), bigintval($stats_id));
+
+                                               //* DEBUG: */ debugOutput('?L:'.__LINE__.'/'.$dummy.'/'.$key.'/'.$userid.'('.['sender_userid'].')/'.$DATA['id'].'/'.$stats_id.'?');
+                                               switch ($status) {
                                                        case 'done':
                                                                // Prepare the mail
                                                                $DATA['stats_id'] = bigintval($stats_id);
                                                        case 'done':
                                                                // Prepare the mail
                                                                $DATA['stats_id'] = bigintval($stats_id);
@@ -129,11 +146,11 @@ if (!SQL_HASZERONUMS($result_main)) {
                                                                $mailText = loadEmailTemplate('normal-mail', $DATA, bigintval($userid));
 
                                                                // Send mail away
                                                                $mailText = loadEmailTemplate('normal-mail', $DATA, bigintval($userid));
 
                                                                // Send mail away
-                                                               sendEmail(getUserData('email'), $DATA['subject'], $mailText, $HTML);
+                                                               sendEmail(getUserData('email'), $DATA['subject'], $mailText, $isHtml);
 
                                                                // Count sent mails...
 
                                                                // Count sent mails...
-                                                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET emails_sent=emails_sent+1 WHERE `userid`=%s LIMIT 1",
-                                                                       array(bigintval($DATA['sender'])), __FILE__, __LINE__);
+                                                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `emails_sent`=`emails_sent`+1 WHERE `userid`=%s LIMIT 1",
+                                                                       array(bigintval($DATA['sender_userid'])), __FILE__, __LINE__);
 
                                                                if (isExtensionInstalledAndNewer('user', '0.1.4')) {
                                                                        // Update mails received for receiver
 
                                                                if (isExtensionInstalledAndNewer('user', '0.1.4')) {
                                                                        // Update mails received for receiver
@@ -158,15 +175,19 @@ if (!SQL_HASZERONUMS($result_main)) {
                                                                $GLOBALS['pool_cnt']++;
                                                                //* DEBUG: */ debugOutput('*EXIT/L:'.__LINE__.'/'.$GLOBALS['pool_cnt']);
                                                                break;
                                                                $GLOBALS['pool_cnt']++;
                                                                //* DEBUG: */ debugOutput('*EXIT/L:'.__LINE__.'/'.$GLOBALS['pool_cnt']);
                                                                break;
-                                               }
-                                       }
+
+                                                       default: // Unknown return type
+                                                               logDebugMessage(__FILE__, __LINE__, 'Unknown status ' . $status . ' detected. pool_id=' . $DATA['id'] . ',sender=' . $DATA['sender_userid'] . ',stats_id=' . $stats_id);
+                                                               break;
+                                               } // END - switch
+                                       } // END - if
 
                                        // Do we have reached the maximum to send mails? || (getConfig('max_send') >= $GLOBALS['pool_cnt'])
                                        //* DEBUG: */ debugOutput('*L:'.__LINE__.'/'.$GLOBALS['pool_cnt'].'>='.$DATA['target_send'].'/'.getConfig('max_send').'>='.$GLOBALS['pool_cnt'].'/'.$lastSentId.'!='.$DATA['id'].'*');
                                        if ((($GLOBALS['pool_cnt'] >= $DATA['target_send'])) && ($lastSentId != $DATA['id'])) {
                                                // Prepare content
                                                $content = array(
 
                                        // Do we have reached the maximum to send mails? || (getConfig('max_send') >= $GLOBALS['pool_cnt'])
                                        //* DEBUG: */ debugOutput('*L:'.__LINE__.'/'.$GLOBALS['pool_cnt'].'>='.$DATA['target_send'].'/'.getConfig('max_send').'>='.$GLOBALS['pool_cnt'].'/'.$lastSentId.'!='.$DATA['id'].'*');
                                        if ((($GLOBALS['pool_cnt'] >= $DATA['target_send'])) && ($lastSentId != $DATA['id'])) {
                                                // Prepare content
                                                $content = array(
-                                                       'sender_userid' => $DATA['sender'],
+                                                       'sender_userid' => $DATA['sender_userid'],
                                                        'cat_id'        => $DATA['cat_id'],
                                                        'text'          => $DATA['text'],
                                                        'url'           => $DATA['url'],
                                                        'cat_id'        => $DATA['cat_id'],
                                                        'text'          => $DATA['text'],
                                                        'url'           => $DATA['url'],
@@ -177,9 +198,9 @@ if (!SQL_HASZERONUMS($result_main)) {
                                                sendAdminNotification('{--ADMIN_SEND_DONE_SUBJECT--}', 'done-admin', $content, $userid);
 
                                                // Get sender's data
                                                sendAdminNotification('{--ADMIN_SEND_DONE_SUBJECT--}', 'done-admin', $content, $userid);
 
                                                // Get sender's data
-                                               if (fetchUserData($DATA['sender'])) {
+                                               if (fetchUserData($DATA['sender_userid'])) {
                                                        // Load email template
                                                        // Load email template
-                                                       $mailText = loadEmailTemplate('done-member', $content, $DATA['sender']);
+                                                       $mailText = loadEmailTemplate('done-member', $content, $DATA['sender_userid']);
 
                                                        // Send it also waway
                                                        sendEmail(getUserData('email'), '{--MEMBER_SEND_DONE_SUBJECT--}', $mailText);
 
                                                        // Send it also waway
                                                        sendEmail(getUserData('email'), '{--MEMBER_SEND_DONE_SUBJECT--}', $mailText);
@@ -225,7 +246,7 @@ if (!SQL_HASZERONUMS($result_main)) {
                                        SQL_FREERESULT($result_stats);
                                } else {
                                        // User does not exists so we have add the sender's points back to sender's account
                                        SQL_FREERESULT($result_stats);
                                } else {
                                        // User does not exists so we have add the sender's points back to sender's account
-                                       if (($receiverS['id'] == '0') || (empty($receiverS['id']))) {
+                                       if (($receivers['id'] == '0') || (empty($receivers['id']))) {
                                                // List was empty
                                                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_pool` SET `data_type`='SEND' WHERE `id`=%s LIMIT 1",
                                                        array(bigintval($DATA['id'])), __FILE__, __LINE__);
                                                // List was empty
                                                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_pool` SET `data_type`='SEND' WHERE `id`=%s LIMIT 1",
                                                        array(bigintval($DATA['id'])), __FILE__, __LINE__);
@@ -234,14 +255,14 @@ if (!SQL_HASZERONUMS($result_main)) {
                                                if (isValidUserId($userid)) {
                                                        // User does not exists, pay points back
                                                        $points = getPaymentPoints($DATA['payment_id']);
                                                if (isValidUserId($userid)) {
                                                        // User does not exists, pay points back
                                                        $points = getPaymentPoints($DATA['payment_id']);
-                                                       addPointsDirectly('pool_payback', $DATA['sender'], $points);
+                                                       addPointsDirectly('pool_payback', $DATA['sender_userid'], $points);
 
                                                        // Add points together and remove user
 
                                                        // Add points together and remove user
-                                                       $pointsBack[$DATA['sender']] += $points;
+                                                       $pointsBack[$DATA['sender_userid']] += $points;
                                                } // END - if
 
                                                // Count up
                                                } // END - if
 
                                                // Count up
-                                               $count_back[$DATA['sender']]++;
+                                               $count_back[$DATA['sender_userid']]++;
                                        }
 
                                        // Remove entry from list
                                        }
 
                                        // Remove entry from list