* $Author:: $ *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009, 2010 by Mailer Developer Team *
- * For more information visit: http://www.mxchange.org *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team *
+ * For more information visit: http://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 *
return false;
}
-// Need this here
// Only send bonus mail when bonus extension is active and maximum send-mails is not reached
if ($GLOBALS['pool_cnt'] < getMaxSend()) {
+ // Default is ext-html_mail is gone
+ $add = '';
+
// Do we need to send out bonus mails?
if (isExtensionActive('html_mail')) {
- // 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
- $result_bonus = SQL_QUERY("SELECT `id`, `subject`, `text`, `receivers`, `points`, `time`, `data_type`, `timestamp`, `url`, `cat_id`, `target_send` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `data_type`='NEW' ORDER BY `timestamp` DESC", __FILE__, __LINE__);
- }
-
- if (!SQL_HASZERONUMS($result_bonus)) {
+ // With HTML support
+ $add = ', `html_msg`';
+ } // END - if
+
+ // Run query
+ $result_main = SQL_QUERY("SELECT
+ `id`,
+ `subject`,
+ `text`,
+ `receivers`,
+ `points`,
+ `time`,
+ `data_type`,
+ `timestamp`,
+ `url`,
+ `cat_id`,
+ `target_send`
+ " . $add . "
+FROM
+ `{?_MYSQL_PREFIX?}_bonus`
+WHERE
+ `data_type`='NEW'
+ORDER BY
+ `timestamp` DESC", __FILE__, __LINE__);
+
+ // Some mails left?
+ if (!SQL_HASZERONUMS($result_main)) {
+ // Init SQLs here
+ initSqls();
+
// Send these mails away...
$count2 = '';
- while ($DATA = SQL_FETCHARRAY($result_bonus)) {
+ while ($mailData = SQL_FETCHARRAY($result_main)) {
// Message is active in queue
SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='QUEUE' WHERE `id`=%s LIMIT 1",
- array(bigintval($DATA['id'])), __FILE__, __LINE__);
+ array(bigintval($mailData['id'])), __FILE__, __LINE__);
+
+ // Default is no users left
+ $receivers = array();
// "Explode" all receivers into an array
- if (isInString(';', $DATA['receivers'])) {
+ if (isInString(';', $mailData['receivers'])) {
// There's more than one receiver in the list...
- $receivers = explode(';', $DATA['receivers']);
- } elseif (!empty($DATA['points'])) {
+ $receivers = explode(';', $mailData['receivers']);
+ } elseif (!empty($mailData['points'])) {
// Only one user left
- $receivers = array($DATA['receivers']);
- } else {
- // No users left
- $receivers = array(0);
+ $receivers = array($mailData['receivers']);
}
- $dummy = $receivers;
+ $temporaryReceivers = $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 and send out mails to them.
+ */
foreach ($receivers as $key => $userid) {
// Load personal data
if (fetchUserData($userid)) {
//* DEBUG: */ debugOutput('OK!/L:'.__LINE__);
// Remove receiver from list
- $status = removeReceiver($dummy, $key, $userid, $DATA['id'], $DATA['id'], true);
+ $status = removeReceiver($temporaryReceivers, $key, $userid, $mailData['id'], $mailData['id'], true);
// Did it work?
switch ($status) {
case 'done': // Done!
// Prepare the mail
- $mailText = loadEmailTemplate('bonus-mail', $DATA, $userid);
+ $mailText = loadEmailTemplate('member_bonus_pool_normal', $mailData, $userid);
// Send mail away
- if (isset($DATA['html_msg'])) {
+ if (isset($mailData['html_msg'])) {
// Send HTML?
- sendEmail(getUserData('email'), $DATA['subject'], $mailText, $DATA['html_msg']);
+ sendEmail(getUserData('userid'), $mailData['subject'], $mailText, $mailData['html_msg']);
} else {
// No HTML mail!
- sendEmail(getUserData('email'), $DATA['subject'], $mailText);
+ sendEmail(getUserData('userid'), $mailData['subject'], $mailText);
}
// Count one up and remove entry from dummy array
- $GLOBALS['pool_cnt']++; unset($dummy[$key]);
+ $GLOBALS['pool_cnt']++; unset($temporaryReceivers[$key]);
+ // Is ext-user installed?
if (isExtensionInstalledAndNewer('user', '0.1.4')) {
+ // Debug message
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',mailData[id]=' . $mailData['id']);
// Update mails received for receiver
- SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `emails_received`=`emails_received`+1 WHERE `userid`=%s LIMIT 1",
- array(bigintval($userid)), __FILE__, __LINE__);
+ addSql(sprintf("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `emails_received`=`emails_received`+1 WHERE `userid`=%s LIMIT 1", bigintval($userid)));
} // END - if
- // Do we have send maximum mails?
- if (($GLOBALS['pool_cnt'] >= getMaxSend()) || (countSelection($dummy) == 0)) {
- // Yes, we have
- //* DEBUG: */ debugOutput('*EXIT/L:'.__LINE__);
+ // Is the size of pool reached or nothing to sent left?
+ if (($GLOBALS['pool_cnt'] >= getMaxSend()) || (countSelection($temporaryReceivers) == 0)) {
+ // Yes, it is. So abort here
break;
} // END - if
break;
default: // Unknown return type
- logDebugMessage(__FILE__, __LINE__, 'Unknown status ' . $status . ' detected. pool_id=' . $DATA['id'] . ',userid=' . $DATA['userid'] . ',stats_id=' . $stats_id);
+ logDebugMessage(__FILE__, __LINE__, 'Unknown status ' . $status . ' detected. pool_id=' . $mailData['id'] . ',userid=' . $mailData['userid'] . ',stats_id=' . $stats_id);
break;
} // END - switch
} // END - if
} // END - foreach
+ // Run all SQLs
+ runFilterChain('run_sqls');
+
// Update mediadata if version is 0.0.4 or higher
if (isExtensionInstalledAndNewer('mediadata', '0.0.4')) {
// Update entry (or add missing
} // END - if
// Close sending system
- //* DEBUG: */ debugOutput('-L:'.__LINE__.'/'.countSelection($dummy).'-');
- if (countSelection($dummy) == 0) {
+ //* DEBUG: */ debugOutput('-L:'.__LINE__.'/'.countSelection($temporaryReceivers).'-');
+ if (countSelection($temporaryReceivers) == 0) {
// Queue reached!
SQL_QUERY_ESC("UPDATE
`{?_MYSQL_PREFIX?}_bonus`
WHERE
`id`=%s
LIMIT 1",
- array(bigintval($DATA['id'])), __FILE__, __LINE__);
+ array(bigintval($mailData['id'])), __FILE__, __LINE__);
//* DEBUG: */ debugOutput('*L:'.__LINE__.'*');
// Update mediadata if version is 0.0.4 or higher
`id`=%s
LIMIT 1",
array(
- countSelection($dummy),
- implode(';', $dummy),
- bigintval($DATA['id'])
+ countSelection($temporaryReceivers),
+ implode(';', $temporaryReceivers),
+ bigintval($mailData['id'])
), __FILE__, __LINE__);
- //* DEBUG: */ debugOutput('*L:'.__LINE__.'<pre>'.print_r($dummy, true).'</pre>!!!');
+ //* DEBUG: */ debugOutput('*L:'.__LINE__.'<pre>'.print_r($temporaryReceivers, true).'</pre>!!!');
+
+ // Run any SQLs
+ runFilterChain('run_sqls');
break;
}
} // END - while
} // END - if
// Free memory
- SQL_FREERESULT($result_bonus);
+ SQL_FREERESULT($result_main);
// Remove variable
unset($mailText);