Use render_block_* hooks for rendering changed blocks

[MAILPOET-5591]
This commit is contained in:
Jan Lysý
2023-10-24 08:52:11 +02:00
committed by Jan Lysý
parent 4f9e3723c9
commit c2cb18ef37
8 changed files with 41 additions and 34 deletions

View File

@@ -2,25 +2,18 @@
namespace MailPoet\EmailEditor\Engine\Renderer;
use MailPoet\EmailEditor\Engine\SettingsController;
class BlocksRenderer {
/** @var BlocksRegistry */
private $blockRenderersRegistry;
/** @var SettingsController */
private $settingsController;
/** @var bool */
private $blocksInitialized = false;
public function __construct(
BlocksRegistry $blockRenderersRegistry,
SettingsController $settingsController
BlocksRegistry $blockRenderersRegistry
) {
$this->blockRenderersRegistry = $blockRenderersRegistry;
$this->settingsController = $settingsController;
}
public function render(array $parsedBlocks): string {
@@ -31,12 +24,12 @@ class BlocksRenderer {
$content = '';
foreach ($parsedBlocks as $parsedBlock) {
$blockRenderer = $this->blockRenderersRegistry->getBlockRenderer($parsedBlock['blockName'] ?? '');
if (!$blockRenderer) {
continue;
}
$content .= $blockRenderer->render($parsedBlock, $this, $this->settingsController);
$content .= render_block($parsedBlock);
}
do_action('mailpoet_blocks_renderer_uninitialized', $this->blockRenderersRegistry);
$this->blocksInitialized = false;
return $content;
}
}