Skip to content

Commit 0223a7b

Browse files
committed
MC-3151: Update data migration
- Update data migration to support new wrapper element for contained rows
1 parent c329a28 commit 0223a7b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+87
-60
lines changed

app/code/Magento/PageBuilder/Setup/DataConverter/Renderer/Row.php

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,36 @@ public function __construct(StyleExtractorInterface $styleExtractor)
2727

2828
/**
2929
* {@inheritdoc}
30+
*
31+
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
32+
* @SuppressWarnings(PHPMD.NPathComplexity)
3033
*/
3134
public function render(array $itemData, array $additionalData = []) : string
3235
{
33-
$rootElementAttributes = [
34-
'data-element' => 'main',
35-
'data-role' => 'row',
36-
'data-appearance' => 'contained',
37-
'class' => $itemData['formData']['css_classes'] ?? '',
38-
];
39-
4036
$formData = $itemData['formData'] ?? [];
37+
$appearance = (isset($formData['template'])
38+
&& $formData['template'] === 'full-width.phtml') ? 'full-width' : 'contained';
4139

42-
if (isset($formData['template']) && $formData['template'] === 'full-width.phtml') {
43-
$rootElementAttributes['data-appearance'] = 'full-width';
40+
// Handle adding the wrapper element attributes when using the contained appearance
41+
$rootElementAttributes = [];
42+
if ($appearance === 'contained') {
43+
$wrapperElementAttributes = [
44+
'data-element' => 'wrapper',
45+
'data-role' => 'row',
46+
'data-appearance' => 'contained',
47+
'class' => 'row-contained',
48+
];
49+
$rootElementAttributes = [
50+
'data-element' => 'main',
51+
'class' => $itemData['formData']['css_classes'] ?? '',
52+
];
53+
} elseif ($appearance === 'full-width') {
54+
$rootElementAttributes = [
55+
'data-element' => 'main',
56+
'data-role' => 'row',
57+
'data-appearance' => 'full-width',
58+
'class' => $itemData['formData']['css_classes'] ?? '',
59+
];
4460
}
4561

4662
$style = $this->styleExtractor->extractStyle($formData);
@@ -55,6 +71,17 @@ public function render(array $itemData, array $additionalData = []) : string
5571
}
5672
$rootElementHtml .= '>' . (isset($additionalData['children']) ? $additionalData['children'] : '') . '</div>';
5773

74+
// Wrap the root element in our wrapper for contained appearances
75+
if ($appearance === 'contained' && isset($wrapperElementAttributes)) {
76+
$wrapperElementHtml = '<div';
77+
foreach ($wrapperElementAttributes as $attributeName => $attributeValue) {
78+
$attributeValue = trim($attributeValue);
79+
$wrapperElementHtml .= $attributeValue ? " $attributeName=\"$attributeValue\"" : '';
80+
}
81+
$wrapperElementHtml .= '>' . $rootElementHtml . '</div>';
82+
return $wrapperElementHtml;
83+
}
84+
5885
return $rootElementHtml;
5986
}
6087
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<div data-element="main" data-role="row" data-appearance="contained"><div data-element="main" data-role="accordion" data-appearance="default" data-mage-init="{&quot;accordion&quot;:{&quot;active&quot;:[0],&quot;collapsibleElement&quot;:&quot;[data-collapsible=true]&quot;,&quot;content&quot;:&quot;[data-content=true]&quot;}}" class="pagebuilder-accordion one two"><div data-collapsible="true" class="accordion-collapsible" data-open-on-load="0"><div data-role="trigger"><span>Accordion Title</span></div></div><div data-content="true" class="accordion-content"><p>Accordion Contents</p></div></div></div>
1+
<div data-element="wrapper" data-role="row" data-appearance="contained" class="row-contained"><div data-element="main"><div data-element="main" data-role="accordion" data-appearance="default" data-mage-init="{&quot;accordion&quot;:{&quot;active&quot;:[0],&quot;collapsibleElement&quot;:&quot;[data-collapsible=true]&quot;,&quot;content&quot;:&quot;[data-content=true]&quot;}}" class="pagebuilder-accordion one two"><div data-collapsible="true" class="accordion-collapsible" data-open-on-load="0"><div data-role="trigger"><span>Accordion Title</span></div></div><div data-content="true" class="accordion-content"><p>Accordion Contents</p></div></div></div></div>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<div data-element="main" data-role="row" data-appearance="contained"><div data-element="main" data-role="accordion" data-appearance="default" data-mage-init="{&quot;accordion&quot;:{&quot;active&quot;:[1],&quot;collapsibleElement&quot;:&quot;[data-collapsible=true]&quot;,&quot;content&quot;:&quot;[data-content=true]&quot;}}" class="pagebuilder-accordion one two"><div data-collapsible="true" class="accordion-collapsible" data-open-on-load="0"><div data-role="trigger"><span>Title 1</span></div></div><div data-content="true" class="accordion-content"><p>Content 1</p></div><div data-collapsible="true" class="accordion-collapsible" data-open-on-load="1"><div data-role="trigger"><span>Title 2</span></div></div><div data-content="true" class="accordion-content"><p>Content 2</p></div></div></div>
1+
<div data-element="wrapper" data-role="row" data-appearance="contained" class="row-contained"><div data-element="main"><div data-element="main" data-role="accordion" data-appearance="default" data-mage-init="{&quot;accordion&quot;:{&quot;active&quot;:[1],&quot;collapsibleElement&quot;:&quot;[data-collapsible=true]&quot;,&quot;content&quot;:&quot;[data-content=true]&quot;}}" class="pagebuilder-accordion one two"><div data-collapsible="true" class="accordion-collapsible" data-open-on-load="0"><div data-role="trigger"><span>Title 1</span></div></div><div data-content="true" class="accordion-content"><p>Content 1</p></div><div data-collapsible="true" class="accordion-collapsible" data-open-on-load="1"><div data-role="trigger"><span>Title 2</span></div></div><div data-content="true" class="accordion-content"><p>Content 2</p></div></div></div></div>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<div data-element="main" data-role="row" data-appearance="contained"><div data-element="main" data-role="slider" data-appearance="default" data-autoplay="0" data-autoplay-speed="0" data-fade="0" data-is-infinite="0" data-show-arrows="0" data-show-dots="0" class="one two pagebuilder-slider" style="text-align: left; margin: 2px 3px 4px 1px; padding: 6px 7px 8px 5px;"><div data-element="main" data-role="slide" data-appearance="poster" class="one two" style="margin: 2px 3px 4px 1px;"><a data-element="link" href="http://domain.com/"><div data-element="mobile_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-only" style="text-align: left; margin: 2px 3px 4px 1px; padding: 6px 7px 8px 5px;"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent" style="padding: 6px 7px 8px 5px;"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div><button data-element="button" type="button" class="pagebuilder-slide-button pagebuilder-button-primary" style="opacity: 1; visibility: visible;">Domain</button></div></div></div><div data-element="desktop_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-hidden" style="text-align: left; margin: 2px 3px 4px 1px; padding: 6px 7px 8px 5px;"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent" style="padding: 6px 7px 8px 5px;"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div><button data-element="button" type="button" class="pagebuilder-slide-button pagebuilder-button-primary" style="opacity: 1; visibility: visible;">Domain</button></div></div></div></a></div></div></div>
1+
<div data-element="wrapper" data-role="row" data-appearance="contained" class="row-contained"><div data-element="main"><div data-element="main" data-role="slider" data-appearance="default" data-autoplay="0" data-autoplay-speed="0" data-fade="0" data-is-infinite="0" data-show-arrows="0" data-show-dots="0" class="one two pagebuilder-slider" style="text-align: left; margin: 2px 3px 4px 1px; padding: 6px 7px 8px 5px;"><div data-element="main" data-role="slide" data-appearance="poster" class="one two" style="margin: 2px 3px 4px 1px;"><a data-element="link" href="http://domain.com/"><div data-element="mobile_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-only" style="text-align: left; margin: 2px 3px 4px 1px; padding: 6px 7px 8px 5px;"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent" style="padding: 6px 7px 8px 5px;"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div><button data-element="button" type="button" class="pagebuilder-slide-button pagebuilder-button-primary" style="opacity: 1; visibility: visible;">Domain</button></div></div></div><div data-element="desktop_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-hidden" style="text-align: left; margin: 2px 3px 4px 1px; padding: 6px 7px 8px 5px;"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent" style="padding: 6px 7px 8px 5px;"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div><button data-element="button" type="button" class="pagebuilder-slide-button pagebuilder-button-primary" style="opacity: 1; visibility: visible;">Domain</button></div></div></div></a></div></div></div></div>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<div data-element="main" data-role="row" data-appearance="contained"><div data-element="main" data-role="slider" data-appearance="default" data-autoplay="1" data-autoplay-speed="500" data-fade="0" data-is-infinite="0" data-show-arrows="1" data-show-dots="0" class="one two pagebuilder-slider"><div data-element="main" data-role="slide" data-appearance="poster" class="one two"><a data-element="link" href="http://domain.com/"><div data-element="mobile_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-only" style="background-image: url('{{media url=wysiwyg/m/a/magento.png}}');"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div><button data-element="button" type="button" class="pagebuilder-slide-button pagebuilder-button-primary" style="opacity: 1; visibility: visible;">Domain</button></div></div></div><div data-element="desktop_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-hidden" style="background-image: url('{{media url=wysiwyg/m/a/magento.png}}');"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div><button data-element="button" type="button" class="pagebuilder-slide-button pagebuilder-button-primary" style="opacity: 1; visibility: visible;">Domain</button></div></div></div></a></div></div></div>
1+
<div data-element="wrapper" data-role="row" data-appearance="contained" class="row-contained"><div data-element="main"><div data-element="main" data-role="slider" data-appearance="default" data-autoplay="1" data-autoplay-speed="500" data-fade="0" data-is-infinite="0" data-show-arrows="1" data-show-dots="0" class="one two pagebuilder-slider"><div data-element="main" data-role="slide" data-appearance="poster" class="one two"><a data-element="link" href="http://domain.com/"><div data-element="mobile_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-only" style="background-image: url('{{media url=wysiwyg/m/a/magento.png}}');"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div><button data-element="button" type="button" class="pagebuilder-slide-button pagebuilder-button-primary" style="opacity: 1; visibility: visible;">Domain</button></div></div></div><div data-element="desktop_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-hidden" style="background-image: url('{{media url=wysiwyg/m/a/magento.png}}');"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div><button data-element="button" type="button" class="pagebuilder-slide-button pagebuilder-button-primary" style="opacity: 1; visibility: visible;">Domain</button></div></div></div></a></div></div></div></div>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<div data-element="main" data-role="row" data-appearance="contained"><div data-element="main" data-role="slider" data-appearance="default" data-autoplay="1" data-autoplay-speed="500" data-fade="0" data-is-infinite="0" data-show-arrows="1" data-show-dots="0" class="pagebuilder-slider"><div data-element="main" data-role="slide" data-appearance="poster"><a data-element="link" href="http://domain.com/"><div data-element="mobile_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-only"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div></div></div></div><div data-element="desktop_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-hidden"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div></div></div></div></a></div></div></div>
1+
<div data-element="wrapper" data-role="row" data-appearance="contained" class="row-contained"><div data-element="main"><div data-element="main" data-role="slider" data-appearance="default" data-autoplay="1" data-autoplay-speed="500" data-fade="0" data-is-infinite="0" data-show-arrows="1" data-show-dots="0" class="pagebuilder-slider"><div data-element="main" data-role="slide" data-appearance="poster"><a data-element="link" href="http://domain.com/"><div data-element="mobile_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-only"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div></div></div></div><div data-element="desktop_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-hidden"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="transparent"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div></div></div></div></a></div></div></div></div>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<div data-element="main" data-role="row" data-appearance="contained"><div data-element="main" data-role="slider" data-appearance="default" data-autoplay="1" data-autoplay-speed="500" data-fade="0" data-is-infinite="0" data-show-arrows="1" data-show-dots="0" class="pagebuilder-slider"><div data-element="main" data-role="slide" data-appearance="poster"><a data-element="link" href="http://domain.com/"><div data-element="mobile_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-only"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="rgba(0,0,0,0.5)" style="background-color: rgba(0,0,0,0.5);"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div></div></div></div><div data-element="desktop_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-hidden"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="rgba(0,0,0,0.5)" style="background-color: rgba(0,0,0,0.5);"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div></div></div></div></a></div></div></div>
1+
<div data-element="wrapper" data-role="row" data-appearance="contained" class="row-contained"><div data-element="main"><div data-element="main" data-role="slider" data-appearance="default" data-autoplay="1" data-autoplay-speed="500" data-fade="0" data-is-infinite="0" data-show-arrows="1" data-show-dots="0" class="pagebuilder-slider"><div data-element="main" data-role="slide" data-appearance="poster"><a data-element="link" href="http://domain.com/"><div data-element="mobile_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-only"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="rgba(0,0,0,0.5)" style="background-color: rgba(0,0,0,0.5);"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div></div></div></div><div data-element="desktop_image" class="pagebuilder-slide-wrapper pagebuilder-mobile-hidden"><div data-element="overlay" class="pagebuilder-overlay pagebuilder-poster-overlay" data-overlay-color="rgba(0,0,0,0.5)" style="background-color: rgba(0,0,0,0.5);"><div class="pagebuilder-poster-content"><div data-element="content"><h3>Slide title</h3><div><p>Slide <strong>content</strong></p></div></div></div></div></div></a></div></div></div></div>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<div data-element="main" data-role="row" data-appearance="contained"><div data-element="main" data-role="anchor" data-appearance="default" class="one two" id="anchor-identifier" style="text-align: left; margin: 2px 3px 4px 1px; padding: 6px 7px 8px 5px;"></div></div>
1+
<div data-element="wrapper" data-role="row" data-appearance="contained" class="row-contained"><div data-element="main"><div data-element="main" data-role="anchor" data-appearance="default" class="one two" id="anchor-identifier" style="text-align: left; margin: 2px 3px 4px 1px; padding: 6px 7px 8px 5px;"></div></div></div>

0 commit comments

Comments
 (0)