Rename Newsletters\ViewInBrowser to ViewInBrowserRenderer
[MAILPOET-2430]
This commit is contained in:
committed by
Jack Kitterhing
parent
edb18399a1
commit
88d76d5efa
69
lib/Newsletter/ViewInBrowser/ViewInBrowserRenderer.php
Normal file
69
lib/Newsletter/ViewInBrowser/ViewInBrowserRenderer.php
Normal file
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace MailPoet\Newsletter\ViewInBrowser;
|
||||
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Newsletter\Links\Links;
|
||||
use MailPoet\Newsletter\Renderer\Renderer;
|
||||
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\WP\Emoji;
|
||||
|
||||
class ViewInBrowserRenderer {
|
||||
/** @var Emoji */
|
||||
private $emoji;
|
||||
|
||||
/** @var bool */
|
||||
private $isTrackingEnabled;
|
||||
|
||||
public function __construct(Emoji $emoji, SettingsController $settings) {
|
||||
$this->emoji = $emoji;
|
||||
$this->isTrackingEnabled = $settings->get('tracking.enabled');
|
||||
}
|
||||
|
||||
public function render(
|
||||
bool $isPreview,
|
||||
Newsletter $newsletter,
|
||||
Subscriber $subscriber = null,
|
||||
SendingQueue $queue = null
|
||||
) {
|
||||
$wpUserPreview = $isPreview;
|
||||
if ($queue && $queue->getNewsletterRenderedBody()) {
|
||||
$newsletterBody = $queue->getNewsletterRenderedBody('html');
|
||||
$newsletterBody = $this->emoji->decodeEmojisInBody($newsletterBody);
|
||||
// rendered newsletter body has shortcodes converted to links; we need to
|
||||
// isolate "view in browser", "unsubscribe" and "manage subscription" links
|
||||
// and convert them to shortcodes, which later will be replaced with "#" when
|
||||
// newsletter is previewed
|
||||
if ($wpUserPreview && preg_match(Links::getLinkRegex(), $newsletterBody)) {
|
||||
$newsletterBody = Links::convertHashedLinksToShortcodesAndUrls(
|
||||
$newsletterBody,
|
||||
$queueId = $queue->id,
|
||||
$convertAll = true
|
||||
);
|
||||
// remove open tracking link
|
||||
$newsletterBody = str_replace(Links::DATA_TAG_OPEN, '', $newsletterBody);
|
||||
}
|
||||
} else {
|
||||
$renderer = new Renderer($newsletter, $wpUserPreview);
|
||||
$newsletterBody = $renderer->render('html');
|
||||
}
|
||||
$shortcodes = new Shortcodes(
|
||||
$newsletter,
|
||||
$subscriber,
|
||||
$queue,
|
||||
$wpUserPreview
|
||||
);
|
||||
$renderedNewsletter = $shortcodes->replace($newsletterBody);
|
||||
if (!$wpUserPreview && $queue && $subscriber && $this->isTrackingEnabled) {
|
||||
$renderedNewsletter = Links::replaceSubscriberData(
|
||||
$subscriber->id,
|
||||
$queue->id,
|
||||
$renderedNewsletter
|
||||
);
|
||||
}
|
||||
return $renderedNewsletter;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user