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

View File

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

View File

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