diff --git a/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Heading.php b/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Heading.php
index 57d5d19de0..e9133560bf 100644
--- a/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Heading.php
+++ b/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Heading.php
@@ -19,44 +19,45 @@ class Heading implements BlockRenderer {
private function getBlockWrapper(array $parsedBlock, SettingsController $settingsController): string {
$availableStylesheets = $settingsController->getAvailableStylesheets();
+ $marginTop = $parsedBlock['email_attrs']['margin-top'] ?? '0px';
// Styles for padding need to be set on the wrapping table cell due to support in Outlook
- $paddingBottom = $parsedBlock['attrs']['style']['spacing']['padding']['bottom'] ?? '0px';
- $paddingLeft = $parsedBlock['attrs']['style']['spacing']['padding']['left'] ?? '0px';
- $paddingRight = $parsedBlock['attrs']['style']['spacing']['padding']['right'] ?? '0px';
- $paddingTop = $parsedBlock['attrs']['style']['spacing']['padding']['top'] ?? '0px';
-
$styles = [
'background-color' => $parsedBlock['attrs']['style']['color']['background'] ?? 'transparent',
'min-width' => '100%', // prevent Gmail App from shrinking the table on mobile devices
- 'padding-bottom' => $paddingBottom,
- 'padding-left' => $paddingLeft,
- 'padding-right' => $paddingRight,
- 'padding-top' => $paddingTop,
+ 'padding-bottom' => $parsedBlock['attrs']['style']['spacing']['padding']['bottom'] ?? '0px',
+ 'padding-left' => $parsedBlock['attrs']['style']['spacing']['padding']['left'] ?? '0px',
+ 'padding-right' => $parsedBlock['attrs']['style']['spacing']['padding']['right'] ?? '0px',
+ 'padding-top' => $parsedBlock['attrs']['style']['spacing']['padding']['top'] ?? '0px',
];
foreach ($parsedBlock['email_attrs'] ?? [] as $property => $value) {
if ($property === 'width') continue; // width is handled by the wrapping blocks (columns, column)
+ if ($property === 'margin-top') continue; // margin-top is set on the wrapping div co we need to avoid duplication
$styles[$property] = $value;
}
$styles = array_merge($styles, $this->fetchStylesFromBlockAttrs($availableStylesheets, $parsedBlock['attrs']));
return '
-
-
-
- {heading_content}
- |
-
-
+
+
+
+
+
+ {heading_content}
+ |
+
+
+
+
';
}
diff --git a/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Image.php b/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Image.php
index 9178dc903b..ec6ac82893 100644
--- a/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Image.php
+++ b/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Image.php
@@ -112,6 +112,7 @@ class Image implements BlockRenderer {
$styles['width'] = '100%';
$align = $parsedBlock['attrs']['align'] ?? 'left';
+ $marginTop = $parsedBlock['email_attrs']['margin-top'] ?? '0px';
return '
- {image_content} |
+ {image_content} |
{caption_content} |
diff --git a/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/ListBlock.php b/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/ListBlock.php
index 1ae6d79662..72ffe8cfcf 100644
--- a/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/ListBlock.php
+++ b/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/ListBlock.php
@@ -28,7 +28,21 @@ class ListBlock implements BlockRenderer {
$blockContent = $html->get_updated_html();
}
+ $wrapperStyle = $settingsController->convertStylesToString([
+ 'margin-top' => $parsedBlock['email_attrs']['margin-top'] ?? '0px',
+ ]);
+
// \WP_HTML_Tag_Processor escapes the content, so we have to replace it back
- return str_replace(''', "'", $blockContent);
+ $blockContent = str_replace(''', "'", $blockContent);
+ $blockContent = str_replace('{listContent}', $blockContent, $this->getMarkup());
+ $blockContent = str_replace('{wrapperStyle}', $wrapperStyle, $blockContent);
+ return $blockContent;
+ }
+
+ private function getMarkup(): string {
+ return '
+
+ {listContent}
+ ';
}
}
diff --git a/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Paragraph.php b/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Paragraph.php
index 86a7f85793..e1a67fd5be 100644
--- a/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Paragraph.php
+++ b/mailpoet/lib/EmailEditor/Integrations/Core/Renderer/Blocks/Paragraph.php
@@ -20,22 +20,20 @@ class Paragraph implements BlockRenderer {
$availableStylesheets = $settingsController->getAvailableStylesheets();
$align = $parsedBlock['attrs']['align'] ?? 'left';
- $paddingBottom = $parsedBlock['attrs']['style']['spacing']['padding']['bottom'] ?? '0px';
- $paddingLeft = $parsedBlock['attrs']['style']['spacing']['padding']['left'] ?? '0px';
- $paddingRight = $parsedBlock['attrs']['style']['spacing']['padding']['right'] ?? '0px';
- $paddingTop = $parsedBlock['attrs']['style']['spacing']['padding']['top'] ?? '0px';
+ $marginTop = $parsedBlock['email_attrs']['margin-top'] ?? '0px';
$styles = [
'background-color' => $parsedBlock['attrs']['style']['color']['background'] ?? 'transparent',
'text-align' => $align,
- 'padding-bottom' => $paddingBottom,
- 'padding-left' => $paddingLeft,
- 'padding-right' => $paddingRight,
- 'padding-top' => $paddingTop,
+ 'padding-bottom' => $parsedBlock['attrs']['style']['spacing']['padding']['bottom'] ?? '0px',
+ 'padding-left' => $parsedBlock['attrs']['style']['spacing']['padding']['left'] ?? '0px',
+ 'padding-right' => $parsedBlock['attrs']['style']['spacing']['padding']['right'] ?? '0px',
+ 'padding-top' => $parsedBlock['attrs']['style']['spacing']['padding']['top'] ?? '0px',
];
foreach ($parsedBlock['email_attrs'] ?? [] as $property => $value) {
if ($property === 'width') continue; // width is handled by the wrapping blocks (columns, column)
+ if ($property === 'margin-top') continue; // margin-top is set on the wrapping div co we need to avoid duplication
$styles[$property] = $value;
}
@@ -46,20 +44,17 @@ class Paragraph implements BlockRenderer {
$styles = array_merge($styles, $this->fetchStylesFromBlockAttrs($availableStylesheets, $parsedBlock['attrs'] ?? []));
return '
-
-
-
- {paragraph_content}
- |
-
-
+
+
+
+
+
+ {paragraph_content}
+ |
+
+
+
+
';
}
|