Refactor getBlocks and getBlock methods from static to instance methods

[MAILPOET-2665]
This commit is contained in:
Rostislav Wolny
2020-01-29 16:02:34 +01:00
committed by Jack Kitterhing
parent 37423908d7
commit 5193d4641c
3 changed files with 23 additions and 8 deletions

View File

@@ -20,7 +20,7 @@ class Renderer {
public function renderHTML($form = []) { public function renderHTML($form = []) {
if (isset($form['body']) && !empty($form['body'])) { if (isset($form['body']) && !empty($form['body'])) {
return static::renderBlocks($form['body']); return $this->renderBlocks($form['body']);
} }
return ''; return '';
} }
@@ -35,7 +35,7 @@ class Renderer {
} }
} }
public static function renderBlocks($blocks = [], $honeypotEnabled = true) { public function renderBlocks($blocks = [], $honeypotEnabled = true) {
$settings = SettingsController::getInstance(); $settings = SettingsController::getInstance();
// add honeypot for spambots // add honeypot for spambots
$html = ($honeypotEnabled) ? $html = ($honeypotEnabled) ?
@@ -63,13 +63,13 @@ class Renderer {
<input class="mailpoet_recaptcha_field" type="hidden" name="recaptcha"> <input class="mailpoet_recaptcha_field" type="hidden" name="recaptcha">
</div>'; </div>';
} }
$html .= static::renderBlock($block) . PHP_EOL; $html .= $this->renderBlock($block) . PHP_EOL;
} }
return $html; return $html;
} }
private static function renderBlock($block = []) { private function renderBlock($block = []) {
$html = ''; $html = '';
switch ($block['type']) { switch ($block['type']) {
case 'html': case 'html':

View File

@@ -20,11 +20,21 @@ class CaptchaRenderer {
/** @var SubscriptionUrlFactory */ /** @var SubscriptionUrlFactory */
private $subscriptionUrlFactory; private $subscriptionUrlFactory;
public function __construct(UrlHelper $urlHelper, WPFunctions $wp, CaptchaSession $captchaSession, SubscriptionUrlFactory $subscriptionUrlFactory) { /** @var FormRenderer */
private $formRenderer;
public function __construct(
UrlHelper $urlHelper,
WPFunctions $wp,
CaptchaSession $captchaSession,
SubscriptionUrlFactory $subscriptionUrlFactory,
FormRenderer $formRenderer
) {
$this->urlHelper = $urlHelper; $this->urlHelper = $urlHelper;
$this->wp = $wp; $this->wp = $wp;
$this->captchaSession = $captchaSession; $this->captchaSession = $captchaSession;
$this->subscriptionUrlFactory = $subscriptionUrlFactory; $this->subscriptionUrlFactory = $subscriptionUrlFactory;
$this->formRenderer = $formRenderer;
} }
public function getCaptchaPageTitle() { public function getCaptchaPageTitle() {
@@ -105,7 +115,7 @@ class CaptchaRenderer {
$formHtml .= '</p>'; $formHtml .= '</p>';
// subscription form // subscription form
$formHtml .= FormRenderer::renderBlocks($form, $honeypot = false); $formHtml .= $this->formRenderer->renderBlocks($form, $honeypot = false);
$formHtml .= '</div>'; $formHtml .= '</div>';
$formHtml .= $this->renderFormMessages($formModel, $showSuccessMessage, $showErrorMessage); $formHtml .= $this->renderFormMessages($formModel, $showSuccessMessage, $showErrorMessage);
$formHtml .= '</form>'; $formHtml .= '</form>';

View File

@@ -55,6 +55,9 @@ class Pages {
/** @var AssetsController */ /** @var AssetsController */
private $assetsController; private $assetsController;
/** @var FormRenderer */
private $formRenderer;
public function __construct( public function __construct(
NewSubscriberNotificationMailer $newSubscriberNotificationSender, NewSubscriberNotificationMailer $newSubscriberNotificationSender,
WPFunctions $wp, WPFunctions $wp,
@@ -64,7 +67,8 @@ class Pages {
WelcomeScheduler $welcomeScheduler, WelcomeScheduler $welcomeScheduler,
LinkTokens $linkTokens, LinkTokens $linkTokens,
SubscriptionUrlFactory $subscriptionUrlFactory, SubscriptionUrlFactory $subscriptionUrlFactory,
AssetsController $assetsController AssetsController $assetsController,
FormRenderer $formRenderer
) { ) {
$this->wp = $wp; $this->wp = $wp;
$this->newSubscriberNotificationSender = $newSubscriberNotificationSender; $this->newSubscriberNotificationSender = $newSubscriberNotificationSender;
@@ -75,6 +79,7 @@ class Pages {
$this->linkTokens = $linkTokens; $this->linkTokens = $linkTokens;
$this->subscriptionUrlFactory = $subscriptionUrlFactory; $this->subscriptionUrlFactory = $subscriptionUrlFactory;
$this->assetsController = $assetsController; $this->assetsController = $assetsController;
$this->formRenderer = $formRenderer;
} }
public function init($action = false, $data = [], $initShortcodes = false, $initPageFilters = false) { public function init($action = false, $data = [], $initShortcodes = false, $initPageFilters = false) {
@@ -487,7 +492,7 @@ class Pages {
$formHtml .= '</p>'; $formHtml .= '</p>';
// subscription form // subscription form
$formHtml .= FormRenderer::renderBlocks($form, $honeypot = false); $formHtml .= $this->formRenderer->renderBlocks($form, $honeypot = false);
$formHtml .= '</form>'; $formHtml .= '</form>';
return $formHtml; return $formHtml;
} }