$ezcOutputOptions = array(); if ($cli->isQuiet()) { $ezcOutputOptions = array('verbosityLevel' => 0); } $output = new ezcConsoleOutput(null, $ezcOutputOptions); $editionSendId = (int) $sendObject->attribute('id'); $sendItemsStatistic = $sendObject->attribute('send_items_statistic'); $itemsCountAll = $sendItemsStatistic['items_count']; $itemsSend = $sendItemsStatistic['items_send']; $itemsNotSend = $sendItemsStatistic['items_not_send']; // ### sendObject Data $outputFormatStringArray = $sendObject->getParsedOutputXml(); // embed images foreach ($outputFormatStringArray as $outputFormatId => $outputFormatNewsletterContentArray) { if ($outputFormatNewsletterContentArray['html_mail_image_include'] == 1) { $outputFormatStringArray[$outputFormatId] = CjwNewsletterEdition::prepareImageInclude($outputFormatNewsletterContentArray); } } // embed images ends $emailSender = $sendObject->attribute('email_sender'); $emailSenderName = $sendObject->attribute('email_sender_name'); $limit = 50; $offset = 0; $itemCounter = 1; $progressMonitor = new ezcConsoleProgressMonitor($output, $itemsNotSend); $cjwMail = new CjwNewsletterMail(); $cjwMail->setTransportMethodCronjobFromIni(); // process every send_item of current sendobject for ($i = 0; $i < $itemsNotSend; $i += $limit) { // $progressBar->advance(); $sendItemList = CjwNewsletterEditionSendItem::fetchListSendIdAndStatus($editionSendId, CjwNewsletterEditionSendItem::STATUS_NEW, $limit, $offset);
/** * Generate text html of a output for preview and sending email * * @see classes/cjwnewslettermail.php getAllOutputFormatTextByContentObjectVersion() * @see modules/newsletter/preview.php * @param unknown_type $editionContentObjectId * @param unknown_type $versionId * @param unknown_type $outputFormat * @param string $siteAccess * @param string $skinName * @param int $forceImageIncludeSettings -1 - use default settings * 1 - force do not render all img to file://settings from newsletterContentArray['html_mail_image_include'] will be used * 0 - force renders all img to file:// * @return array */ static function getOutput($editionContentObjectId, $versionId, $outputFormat, $siteAccess, $skinName = 'default', $forceSettingImageIncludeTo = -1) { if ($skinName == '') { $skinName = 'default'; } $cjwNewsletterIni = eZINI::instance('cjw_newsletter.ini'); $phpCli = $cjwNewsletterIni->variable('NewsletterSettings', 'PhpCli'); $currentHostName = eZSys::hostname(); $wwwDir = eZSys::wwwDir(); //$wwwDir = 'tmp'; $wwwDirString = ''; if ($wwwDir != '') { $wwwDirString = "--www_dir={$wwwDir} "; } $cmd = "\"{$phpCli}\" extension/cjw_newsletter/bin/php/createoutput.php --object_id={$editionContentObjectId} --object_version={$versionId} --output_format_id={$outputFormat} {$wwwDirString}--current_hostname={$currentHostName} --skin_name={$skinName} -s {$siteAccess}"; $fileSep = eZSys::fileSeparator(); $cmd = str_replace('/', $fileSep, $cmd); eZDebug::writeDebug("shell_exec( {$cmd} )", 'newsletter/preview'); // echo "<hr>$cmd<hr>"; $returnValue = shell_exec(escapeshellcmd($cmd)); $newsletterContentArray = unserialize(trim($returnValue)); if (CjwNewsletterEdition::imageIncludeIsEnabled()) { $htmlMailImageInclude = 1; } // forpreview $imageInclude = false; // render file:// if we want to force it // or use setting from $newsletterContentArray['html_mail_image_include'] if ($forceSettingImageIncludeTo === -1 && $newsletterContentArray['html_mail_image_include'] === 1) { $imageInclude = true; } elseif ($forceSettingImageIncludeTo === 1) { $imageInclude = true; } elseif ($forceSettingImageIncludeTo === 0) { // $imageInclude = false; } if ($imageInclude === true) { $newsletterContentArray = CjwNewsletterEdition::prepareImageInclude($newsletterContentArray); } return $newsletterContentArray; }