function fetchNewsletterOnHoldCount($status)
 {
     return array('result' => eZSendNewsletterItem::count($status));
 }
Example #2
0
$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);
}