Make render preview call more readable [MAILPOET-2979]

This commit is contained in:
wxa
2020-10-05 16:15:58 +03:00
committed by Veljko V
parent 94493f9646
commit fd6ff25cd9
6 changed files with 23 additions and 11 deletions

View File

@ -114,7 +114,7 @@ class Newsletter {
// hook to the newsletter post-processing filter and add tracking image // hook to the newsletter post-processing filter and add tracking image
$this->trackingImageInserted = OpenTracking::addTrackingImage(); $this->trackingImageInserted = OpenTracking::addTrackingImage();
// render newsletter // render newsletter
$renderedNewsletter = $this->renderer->render($newsletter, false, false, $sendingTask); $renderedNewsletter = $this->renderer->render($newsletter, $sendingTask);
$renderedNewsletter = $this->wp->applyFilters( $renderedNewsletter = $this->wp->applyFilters(
'mailpoet_sending_newsletter_render_after', 'mailpoet_sending_newsletter_render_after',
$renderedNewsletter, $renderedNewsletter,
@ -125,7 +125,7 @@ class Newsletter {
$renderedNewsletter = LinksTask::process($renderedNewsletter, $newsletter, $sendingTask); $renderedNewsletter = LinksTask::process($renderedNewsletter, $newsletter, $sendingTask);
} else { } else {
// render newsletter // render newsletter
$renderedNewsletter = $this->renderer->render($newsletter); $renderedNewsletter = $this->renderer->render($newsletter, $sendingTask);
$renderedNewsletter = $this->wp->applyFilters( $renderedNewsletter = $this->wp->applyFilters(
'mailpoet_sending_newsletter_render_after', 'mailpoet_sending_newsletter_render_after',
$renderedNewsletter, $renderedNewsletter,

View File

@ -43,7 +43,7 @@ class SendPreviewController {
throw new SendPreviewException("Newsletter with ID '{$newsletter->getId()}' not found"); throw new SendPreviewException("Newsletter with ID '{$newsletter->getId()}' not found");
} }
$renderedNewsletter = $this->renderer->render($newsletter, $preview = true); $renderedNewsletter = $this->renderer->renderAsPreview($newsletter);
$divider = '***MailPoet***'; $divider = '***MailPoet***';
$dataForShortcodes = array_merge( $dataForShortcodes = array_merge(
[$newsletter->getSubject()], [$newsletter->getSubject()],

View File

@ -70,7 +70,15 @@ class Renderer {
return $this->newslettersRepository->findOneById($newsletterId); return $this->newslettersRepository->findOneById($newsletterId);
} }
public function render($newsletter, $preview = false, $type = false, SendingTask $sendingTask = null) { public function render($newsletter, SendingTask $sendingTask = null, $type = false) {
return $this->_render($newsletter, $sendingTask, $type);
}
public function renderAsPreview($newsletter, $type = false) {
return $this->_render($newsletter, null, $type, true);
}
private function _render($newsletter, SendingTask $sendingTask = null, $type = false, $preview = false) {
$newsletter = $this->getNewsletter($newsletter); $newsletter = $this->getNewsletter($newsletter);
if (!$newsletter instanceof NewsletterEntity) { if (!$newsletter instanceof NewsletterEntity) {
throw new RuntimeException('Newsletter was not found'); throw new RuntimeException('Newsletter was not found');

View File

@ -55,7 +55,11 @@ class ViewInBrowserRenderer {
$newsletterBody = str_replace(Links::DATA_TAG_OPEN, '', $newsletterBody); $newsletterBody = str_replace(Links::DATA_TAG_OPEN, '', $newsletterBody);
} }
} else { } else {
$newsletterBody = $this->renderer->render($newsletter, $wpUserPreview, 'html'); if ($wpUserPreview) {
$newsletterBody = $this->renderer->renderAsPreview($newsletter, 'html');
} else {
$newsletterBody = $this->renderer->render($newsletter, $sendingTask = null, 'html');
}
} }
$shortcodes = new Shortcodes( $shortcodes = new Shortcodes(
$newsletter, $newsletter,

View File

@ -34,7 +34,7 @@ class Renderer {
} }
public function render(Newsletter $newsletter) { public function render(Newsletter $newsletter) {
$html = explode(Preprocessor::WC_CONTENT_PLACEHOLDER, $this->renderer->render($newsletter, true, 'html')); $html = explode(Preprocessor::WC_CONTENT_PLACEHOLDER, $this->renderer->renderAsPreview($newsletter, 'html'));
$this->htmlBeforeContent = $html[0]; $this->htmlBeforeContent = $html[0];
$this->htmlAfterContent = $html[1]; $this->htmlAfterContent = $html[1];
} }

View File

@ -63,7 +63,7 @@ class RendererTest extends \MailPoetTest {
} }
public function testItRendersCompleteNewsletter() { public function testItRendersCompleteNewsletter() {
$template = $this->renderer->render($this->newsletter, true);// do not render logo $template = $this->renderer->renderAsPreview($this->newsletter);// do not render logo
expect(isset($template['html']))->true(); expect(isset($template['html']))->true();
expect(isset($template['text']))->true(); expect(isset($template['text']))->true();
$DOM = $this->dOMParser->parseStr($template['html']); $DOM = $this->dOMParser->parseStr($template['html']);
@ -592,7 +592,7 @@ class RendererTest extends \MailPoetTest {
$this->license->method('hasLicense')->willReturn(true); $this->license->method('hasLicense')->willReturn(true);
$this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true)); $this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true));
$template = $this->renderer->render($this->newsletter, false); $template = $this->renderer->render($this->newsletter);
expect($template['html'])->notContains('mailpoet_logo_newsletter.png'); expect($template['html'])->notContains('mailpoet_logo_newsletter.png');
} }
@ -601,7 +601,7 @@ class RendererTest extends \MailPoetTest {
$this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(true); $this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(true);
$this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true)); $this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true));
$template = $this->renderer->render($this->newsletter, false); $template = $this->renderer->render($this->newsletter);
expect($template['html'])->notContains('mailpoet_logo_newsletter.png'); expect($template['html'])->notContains('mailpoet_logo_newsletter.png');
} }
@ -610,7 +610,7 @@ class RendererTest extends \MailPoetTest {
$this->license->method('hasLicense')->willReturn(false); $this->license->method('hasLicense')->willReturn(false);
$this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true)); $this->newsletter->setBody(json_decode(Fixtures::get('newsletter_body_template'), true));
$template = $this->renderer->render($this->newsletter, true); $template = $this->renderer->renderAsPreview($this->newsletter);
expect($template['html'])->notContains('mailpoet_logo_newsletter.png'); expect($template['html'])->notContains('mailpoet_logo_newsletter.png');
} }
@ -619,7 +619,7 @@ class RendererTest extends \MailPoetTest {
$this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(false); $this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(false);
$this->license->method('hasLicense')->willReturn(false); $this->license->method('hasLicense')->willReturn(false);
$template = $this->renderer->render($this->newsletter, false); $template = $this->renderer->render($this->newsletter);
expect($template['html'])->contains('mailpoet_logo_newsletter.png'); expect($template['html'])->contains('mailpoet_logo_newsletter.png');
} }