Remove BlocksRenderer and fix tests

[MAILPOET-5591]
This commit is contained in:
Jan Lysý
2023-10-27 08:57:03 +02:00
committed by Jan Lysý
parent 2b0d1ea5c1
commit 2ce6fd8688
7 changed files with 31 additions and 156 deletions

View File

@@ -1,35 +0,0 @@
<?php declare(strict_types = 1);
namespace MailPoet\EmailEditor\Engine\Renderer;
class BlocksRenderer {
/** @var BlocksRegistry */
private $blockRenderersRegistry;
/** @var bool */
private $blocksInitialized = false;
public function __construct(
BlocksRegistry $blockRenderersRegistry
) {
$this->blockRenderersRegistry = $blockRenderersRegistry;
}
public function render(array $parsedBlocks): string {
if (!$this->blocksInitialized) {
$this->blocksInitialized = true;
do_action('mailpoet_blocks_renderer_initialized', $this->blockRenderersRegistry);
}
$content = '';
foreach ($parsedBlocks as $parsedBlock) {
$content .= render_block($parsedBlock);
}
do_action('mailpoet_blocks_renderer_uninitialized', $this->blockRenderersRegistry);
$this->blocksInitialized = false;
return $content;
}
}

View File

@@ -11,8 +11,8 @@ class Renderer {
/** @var \MailPoetVendor\CSS */
private $cssInliner;
/** @var BlocksRenderer */
private $blocksRenderer;
/** @var BlocksRegistry */
private $blocksRegistry;
/** @var PreprocessManager */
private $preprocessManager;
@@ -29,12 +29,12 @@ class Renderer {
public function __construct(
\MailPoetVendor\CSS $cssInliner,
PreprocessManager $preprocessManager,
BlocksRenderer $blocksRenderer,
BlocksRegistry $blocksRegistry,
SettingsController $settingsController
) {
$this->cssInliner = $cssInliner;
$this->preprocessManager = $preprocessManager;
$this->blocksRenderer = $blocksRenderer;
$this->blocksRegistry = $blocksRegistry;
$this->settingsController = $settingsController;
}
@@ -44,7 +44,7 @@ class Renderer {
$layoutStyles = $this->settingsController->getEmailLayoutStyles();
$parsedBlocks = $this->preprocessManager->preprocess($parsedBlocks, $layoutStyles);
$renderedBody = $this->blocksRenderer->render($parsedBlocks);
$renderedBody = $this->renderBlocks($parsedBlocks);
$styles = (string)file_get_contents(dirname(__FILE__) . '/' . self::TEMPLATE_STYLES_FILE);
$styles = apply_filters('mailpoet_email_renderer_styles', $styles, $post);
@@ -87,6 +87,19 @@ class Renderer {
];
}
public function renderBlocks(array $parsedBlocks): string {
do_action('mailpoet_blocks_renderer_initialized', $this->blocksRegistry);
$content = '';
foreach ($parsedBlocks as $parsedBlock) {
$content .= render_block($parsedBlock);
}
do_action('mailpoet_blocks_renderer_uninitialized', $this->blocksRegistry);
return $content;
}
private function injectContentIntoTemplate($template, array $content) {
return preg_replace_callback('/{{\w+}}/', function($matches) use (&$content) {
return array_shift($content);