Create block placeholder

[MAILPOET-3638]
This commit is contained in:
Jan Lysý
2021-06-04 13:55:50 +02:00
committed by Veljko V
parent 3aa84cf9c1
commit 4d5801caa3
3 changed files with 35 additions and 1 deletions

View File

@@ -331,6 +331,7 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Footer::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Footer::class);
$container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Header::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Header::class);
$container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Image::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Image::class);
$container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Placeholder::class);
$container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Renderer::class)->setPublic(true); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Renderer::class)->setPublic(true);
$container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Social::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Social::class);
$container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Spacer::class); $container->autowire(\MailPoet\Newsletter\Renderer\Blocks\Spacer::class);

View File

@@ -0,0 +1,26 @@
<?php declare(strict_types = 1);
namespace MailPoet\Newsletter\Renderer\Blocks;
use MailPoet\WP\Functions as WPFunctions;
class Placeholder {
/** @var WPFunctions */
private $wp;
public function __construct(WPFunctions $wp) {
$this->wp = $wp;
}
public function render($element): string {
$placeholder = $element['placeholder'];
$class = $element['class'] ?? '';
$style = $element['style'] ?? '';
return '
<tr>
<td class="' . $this->wp->escAttr($class) . '" style="' . $this->wp->escAttr($style) . '">
' . $this->wp->escHtml($placeholder) . '
</td>
</tr>';
}
}

View File

@@ -34,6 +34,9 @@ class Renderer {
/** @var Text */ /** @var Text */
private $text; private $text;
/** @var Placeholder */
private $placeholder;
public function __construct( public function __construct(
AutomatedLatestContentBlock $ALC, AutomatedLatestContentBlock $ALC,
Button $button, Button $button,
@@ -43,7 +46,8 @@ class Renderer {
Image $image, Image $image,
Social $social, Social $social,
Spacer $spacer, Spacer $spacer,
Text $text Text $text,
Placeholder $placeholder
) { ) {
$this->ALC = $ALC; $this->ALC = $ALC;
$this->button = $button; $this->button = $button;
@@ -54,6 +58,7 @@ class Renderer {
$this->social = $social; $this->social = $social;
$this->spacer = $spacer; $this->spacer = $spacer;
$this->text = $text; $this->text = $text;
$this->placeholder = $placeholder;
} }
public function render(NewsletterEntity $newsletter, $data) { public function render(NewsletterEntity $newsletter, $data) {
@@ -113,6 +118,8 @@ class Renderer {
return $this->spacer->render($block); return $this->spacer->render($block);
case 'text': case 'text':
return $this->text->render($block); return $this->text->render($block);
case 'placeholder':
return $this->placeholder->render($block);
} }
return "<!-- Skipped unsupported block type: {$block['type']} -->"; return "<!-- Skipped unsupported block type: {$block['type']} -->";
} }