public function testProgressMonitor4() { $out = new ezcConsoleOutput(); $out->formats->tag->color = 'red'; $out->formats->percent->color = 'blue'; $out->formats->percent->style = array('bold'); $out->formats->data->color = 'green'; $status = new ezcConsoleProgressMonitor($out, 7, array('formatString' => $out->formatText('%2$10s', 'tag') . ' ' . $out->formatText('%1$6.2f%%', 'percent') . ' ' . $out->formatText('%3$s', 'data'))); ob_start(); for ($i = 0; $i < 7; $i++) { $status->addEntry($this->stati[$i][0], $this->stati[$i][1]); } $res = ob_get_contents(); ob_end_clean(); // To prepare test files use this: // file_put_contents( dirname( __FILE__ ) . '/data/' . ( ezcBaseFeatures::os() === "Windows" ? "windows/" : "posix/" ) . 'testProgressMonitor4.dat', $res ); $this->assertEquals(file_get_contents(dirname(__FILE__) . '/data/' . (ezcBaseFeatures::os() === "Windows" ? "windows/" : "posix/") . 'testProgressMonitor4.dat'), $res, "Formated statusbar not generated correctly."); }
// fetch html & text content of parsed outputxml from senmdobject // data of outputformate $outputStringArray = $outputFormatStringArray[$outputFormatId]['body']; $emailSubject = $outputFormatStringArray[$outputFormatId]['subject']; $outputStringArrayNew = array('html' => '', 'text' => ''); foreach ($outputStringArray as $index => $string) { $outputStringArrayNew[$index] = CjwNewsletterUtils::replaceNewsletterMarkers($string, $sendObject, $newsletterUserObject); } // set x-cjwnl header $cjwMail->resetExtraMailHeaders(); $cjwMail->setExtraMailHeadersByNewsletterSendItem($sendItem); $resultArray = $cjwMail->sendEmail($emailSender, $emailSenderName, $emailReceiver, $emailReceiverName, $emailSubject, $outputStringArrayNew); $sendResult = $resultArray['send_result']; if ($sendResult === true) { // emal was send $progressMonitor->addEntry("[SEND] {$itemCounter}/{$itemsNotSend}", "Newsletter send item {$id} processed. "); // wenn ok als versendet markieren $sendItem->setAttribute('status', CjwNewsletterEditionSendItem::STATUS_SEND); $sendItem->store(); } else { // error execption $exception = $resultArray['send_result']; $progressMonitor->addEntry("[FAILED] {$itemCounter}/{$itemsNotSend}", "Newsletter send item {$id} failed. "); } // parse output_xml with user_content, normal or personalizied? // create email // send email $itemCounter++; // wait for 2/10 seconds usleep(200000); }
/** * Autoload ezc classes * * @param string $className */ function __autoload($className) { ezcBase::autoload($className); } $out = new ezcConsoleOutput(); // Create a progress monitor $status = new ezcConsoleProgressMonitor($out, 7); // Perform actions $i = 0; while ($i++ < 7) { // Do whatever you want to indicate progress for usleep(mt_rand(20000, 2000000)); // Advance the statusbar by one step $status->addEntry('ACTION', "Performed action #{$i}."); } $out->outputLine(); /* OUTPUT: 14.3% ACTION Performed action #1. 28.6% ACTION Performed action #2. 42.9% ACTION Performed action #3. 57.1% ACTION Performed action #4. 71.4% ACTION Performed action #5. 85.7% ACTION Performed action #6. 100.0% ACTION Performed action #7. */
} $outputStringArrayNew = array('html' => '', 'text' => ''); foreach ($outputStringArray as $index => $string) { $outputStringArrayNew[$index] = str_replace($searchArray, $replaceArray, $string); } // START, replace in subject $emailSubject = str_replace($searchArray, $replaceArray, $emailSubject); // END // set x-cjwnl header $cjwMail->resetExtraMailHeaders(); $cjwMail->setExtraMailHeadersByNewsletterSendItem($sendItem); $resultArray = $cjwMail->sendEmail($emailSender, $emailSenderName, $emailReceiver, $emailReceiverName, $emailSubject, $outputStringArrayNew, false, 'utf-8', $emailReplyTo, $emailReturnPath); $sendResult = $resultArray['send_result']; if ($sendResult === true) { // emal was send $progressMonitor->addEntry("[SEND] {$itemCounter}/{$itemsNotSend}", "Newsletter send item {$id} processed. "); // wenn ok als versendet markieren $sendItem->setAttribute('status', CjwNewsletterEditionSendItem::STATUS_SEND); $sendItem->store(); } else { // error execption $exception = $resultArray['send_result']; $progressMonitor->addEntry("[FAILED] {$itemCounter}/{$itemsNotSend}", "Newsletter send item {$id} failed, abort and bounce newsletter user."); // abort item if mail returns directly e.g. mailbox not found $sendItem->setAttribute('status', CjwNewsletterEditionSendItem::STATUS_ABORT); $sendItem->store(); // bounce send Item $sendItem->setBounced(); // bounc nl user $newsletterUser = $sendItem->attribute('newsletter_user_object'); if (is_object($newsletterUser)) {