// 2. Fetch all newsletters with status : eZNewsletter::SendStatusSending, and send date less than current TS. $cli->output('Fetching prepared newsletter...'); $newsletterArray = eZNewsletter::fetchListBySendStatus(eZNewsletter::SendStatusSending, eZNewsletter::StatusPublished, true, $conditions); $cli->output('Found ' . count($newsletterArray) . ' newsletter.'); if (0 === count($newsletterArray)) { $cli->output('Nothing to send.'); } else { $cli->output('Sending newsletter...'); } // stevo $totallimit = 200; $limit = $totallimit / count($newsletterArray); foreach ($newsletterArray as $newsletter) { $cli->output('Sending messages for ' . $newsletter->attribute('name')); // stevo $statistics = eZNewsletter::sendNewsletterMail($newsletter, false, false, $limit); //$newsletter->setAttribute( 'send_status', eZNewsletter::SendStatusFinished ); //$newsletter->sync(); $cli->output('Sent ' . $statistics['sendCount'] . ' ( skipped:' . $statistics['skipCount'] . ' )' . ' messages for newsletter : ' . $newsletter->attribute('name')); // stevo $count = eZSendNewsletterItem::count(eZSendNewsletterItem::SendStatusNone, $newsletter->attribute('id')); $cli->output("{$count} users left"); if ($count <= 0) { $newsletter->setAttribute('send_status', eZNewsletter::SendStatusFinished); $newsletter->sync(); $cli->output('Finished sending newsletter : ' . $newsletter->attribute('name')); } } // remove pid file to unlock cronjob if (file_exists($pidfilename)) { unlink($pidfilename);
$key = array_search('-newslettertype', $_SERVER['argv']); $newslettertype_id = $_SERVER['argv'][$key + 1]; if (is_numeric($newslettertype_id) && eZNewsletterType::fetch($newslettertype_id)) { $conditions = array_merge($conditions, array('newslettertype_id' => array('=', $newslettertype_id))); $cli->output('Filter for newslettertype <' . $newslettertype_id . '> enabled.'); } else { $cli->output('Invalid id of newslettertype <' . $newslettertype_id . '>!'); eZExecution::cleanup(); eZExecution::setCleanExit(); } } // 2. Fetch all newsletters with status : eZNewsletter::SendStatusSending, and send date less than current TS. $cli->output('Fetching prepared newsletter...'); $newsletterArray = eZNewsletter::fetchListBySendStatus(eZNewsletter::SendStatusSending, eZNewsletter::StatusPublished, true, $conditions); $cli->output('Found ' . count($newsletterArray) . ' newsletter.'); if (0 === count($newsletterArray)) { $cli->output('Nothing to send.'); } else { $cli->output('Sending newsletter...'); } foreach ($newsletterArray as $newsletter) { $cli->output('Sending messages for ' . $newsletter->attribute('name')); $statistics = eZNewsletter::sendNewsletterMail($newsletter); $newsletter->setAttribute('send_status', eZNewsletter::SendStatusFinished); $newsletter->sync(); $cli->output('Sent ' . $statistics['sendCount'] . ' ( skipped:' . $statistics['skipCount'] . ' )' . ' messages for newsletter : ' . $newsletter->attribute('name')); } // remove pid file to unlock cronjob if (file_exists($pidfilename)) { unlink($pidfilename); }
function fetchInput($http, &$module, &$class, $object, &$version, $contentObjectAttributes, $editVersion, $editLanguage, $fromLanguage) { if (!$http->hasPostVariable('NewsletterID')) { return; } $newsletter = eZNewsletter::fetchDraft($http->postVariable('NewsletterID')); if (!$newsletter) { eZDebug::writeError('Could not fetch newsletter : ' . $http->postVariable('NewsletterID')); return; } $newsletter->setAttribute('name', $http->postVariable('NewsletterName')); $newsletter->setAttribute('send_date', $this->getTimestamp($http, $object->ID)); $newsletter->setAttribute('category', $http->postVariable('NewsletterCategory')); // #CHECK# validate $newsletter->setAttribute('preview_email', $http->postVariable('NewsletterPreviewEmail')); $newsletter->setAttribute('preview_mobile', $http->postVariable('NewsletterPreviewMobile')); $preInput = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><paragraph>"; $postInput = "</paragraph>"; $pretext = $http->hasPostVariable('pretext') ? $preInput . html_entity_decode($http->postVariable('pretext')) . $postInput : ''; $posttext = $http->hasPostVariable('posttext') ? $preInput . html_entity_decode($http->postVariable('posttext')) . $postInput : ''; $newsletter->setAttribute('pretext', $pretext); $newsletter->setAttribute('posttext', $posttext); $designtouse = $http->hasPostVariable('DesignToUse') ? $http->postVariable('DesignToUse') : 'eznewsletter'; $newsletter->setAttribute('design_to_use', $designtouse); $newsletter->setAttribute('recurrence_type', $http->postVariable('RecurrenceType')); $recurrencecondition = $http->hasPostVariable('RecurrenceCondition') ? $http->postVariable('RecurrenceCondition') : ''; $newsletter->setAttribute('recurrence_condition', $recurrencecondition); if ($http->postVariable('RecurrenceType') === 'd') { $newsletter->setAttribute('recurrence_value', implode(',', $http->postVariable('RecurrenceValue_d'))); } elseif ($http->postVariable('RecurrenceType') === 'w') { $newsletter->setAttribute('recurrence_value', implode(',', $http->postVariable('RecurrenceValue_w'))); } elseif ($http->postVariable('RecurrenceType') === 'm') { $newsletter->setAttribute('recurrence_value', implode(',', $http->postVariable('RecurrenceValue_m'))); } else { $newsletter->setAttribute('recurrence_value', implode(',', $http->postVariable('RecurrenceValue'))); } $newsletter->store(); if ($http->hasPostVariable('NewsletterPreview')) { return $module->redirect('newsletter', 'preview', array($object->attribute('id'), $editVersion)); } if ($http->hasPostVariable('NewsletterSendPreview')) { eZNewsletter::sendNewsletterMail($newsletter, true); } }