diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index ddf6010313..a65c6aed7c 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -171,6 +171,7 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\Form\DisplayFormInWPContent::class); $container->autowire(\MailPoet\Form\FormsRepository::class); $container->autowire(\MailPoet\Form\Renderer::class); + $container->autowire(\MailPoet\Form\BlocksRenderer::class); $container->autowire(\MailPoet\Form\Util\Styles::class); // Helpscout $container->autowire(\MailPoet\Helpscout\Beacon::class); diff --git a/lib/Form/BlocksRenderer.php b/lib/Form/BlocksRenderer.php new file mode 100644 index 0000000000..20d55598ab --- /dev/null +++ b/lib/Form/BlocksRenderer.php @@ -0,0 +1,51 @@ +styleUtils = $styleUtils; $this->settings = $settings; + $this->blocksRenderer = $blocksRenderer; } public function renderStyles(array $form = [], string $prefix = null): string { @@ -50,7 +58,7 @@ class Renderer { if ($block['type'] == 'submit' && $this->settings->get('captcha.type') === Captcha::TYPE_RECAPTCHA) { $html .= $this->renderReCaptcha(); } - $html .= $this->renderBlock($block) . PHP_EOL; + $html .= $this->blocksRenderer->renderBlock($block) . PHP_EOL; } return $html; } @@ -80,50 +88,4 @@ class Renderer { '; } - - private function renderBlock(array $block = []): string { - $html = ''; - switch ($block['type']) { - case 'html': - $html .= Block\Html::render($block); - break; - - case 'divider': - $html .= Block\Divider::render(); - break; - - case 'checkbox': - $html .= Block\Checkbox::render($block); - break; - - case 'radio': - $html .= Block\Radio::render($block); - break; - - case 'segment': - $html .= Block\Segment::render($block); - break; - - case 'date': - $html .= Block\Date::render($block); - break; - - case 'select': - $html .= Block\Select::render($block); - break; - - case 'text': - $html .= Block\Text::render($block); - break; - - case 'textarea': - $html .= Block\Textarea::render($block); - break; - - case 'submit': - $html .= Block\Submit::render($block); - break; - } - return $html; - } } diff --git a/lib/Form/Widget.php b/lib/Form/Widget.php index 7c2fc6a6c5..98790cfcb9 100644 --- a/lib/Form/Widget.php +++ b/lib/Form/Widget.php @@ -4,8 +4,8 @@ namespace MailPoet\Form; use MailPoet\API\JSON\API; use MailPoet\Config\Renderer as ConfigRenderer; +use MailPoet\DI\ContainerWrapper; use MailPoet\Form\Renderer as FormRenderer; -use MailPoet\Form\Util\Styles; use MailPoet\Models\Form; use MailPoet\Settings\SettingsController; use MailPoet\Util\Security; @@ -30,7 +30,7 @@ class Widget extends \WP_Widget { $this->wp = new WPFunctions; $this->renderer = new \MailPoet\Config\Renderer(!WP_DEBUG, !WP_DEBUG); $this->assetsController = new AssetsController($this->wp, $this->renderer, SettingsController::getInstance()); - $this->formRenderer = new FormRenderer(new Styles(), SettingsController::getInstance()); + $this->formRenderer = ContainerWrapper::getInstance()->get(FormRenderer::class); if (!is_admin()) { $this->setupIframe(); } else {