Create block placeholder
[MAILPOET-3638]
This commit is contained in:
@@ -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);
|
||||||
|
26
lib/Newsletter/Renderer/Blocks/Placeholder.php
Normal file
26
lib/Newsletter/Renderer/Blocks/Placeholder.php
Normal 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>';
|
||||||
|
}
|
||||||
|
}
|
@@ -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']} -->";
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user