Skip to content

Commit 12c4ce9

Browse files
authored
Merge branch 'magento-commerce:develop' into ACP2E-1646
2 parents f69556c + 102c4f6 commit 12c4ce9

File tree

27 files changed

+266
-28
lines changed

27 files changed

+266
-28
lines changed

.github/CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ For more detailed information on contribution please read our [beginners guide](
1515

1616
## Contribution requirements
1717

18-
1. Contributions must adhere to the [Magento coding standards](https://devdocs.magento.com/guides/v2.4/coding-standards/bk-coding-standards.html).
18+
1. Contributions must adhere to the [Magento coding standards](https://developer.adobe.com/commerce/php/coding-standards/).
1919
1. Pull requests (PRs) must be accompanied by a meaningful description of their purpose. Comprehensive descriptions increase the chances of a pull request being merged quickly and without additional clarification requests.
2020
1. Commits must be accompanied by meaningful commit messages. Please see the [Magento 2 Page Builder Pull Request Template](PULL_REQUEST_TEMPLATE.md) for more information.
2121
1. PRs which include bug fixes must be accompanied with a step-by-step description of how to reproduce the bug.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ The wiki provides more information on the Page Builder project, such as:
2121
- [MFTF best practices](https://github.com/magento/magento2-page-builder-docs/wiki/%5BRough-Draft%5D-MFTF-Best-Practices)
2222

2323
## Documentation
24+
2425
Complete documentation located on the [Magento DevDocs](https://developer.adobe.com/commerce/frontend-core/page-builder/), including what you need to know to start local development as described in the [installation guide](https://github.com/magento/magento2-page-builder-docs/wiki/Installation-Guide).
2526

2627
## Community Engineering Slack

app/code/Magento/PageBuilder/Model/Dom/Element.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public function querySelectorAll(string $selector): HtmlCollectionInterface
145145
public function removeStyle(string $styleProperty): string
146146
{
147147
$style = $this->getAttribute('style');
148-
$this->setAttribute('style', preg_replace("/${styleProperty}:(.*?);/", '', $style ?? ''));
148+
$this->setAttribute('style', preg_replace("/{$styleProperty}:(.*?);/", '', $style ?? ''));
149149
return $this->getAttribute('style') ?? '';
150150
}
151151

@@ -155,7 +155,7 @@ public function removeStyle(string $styleProperty): string
155155
public function addStyle(string $styleProperty, string $value): string
156156
{
157157
$this->removeStyle($styleProperty);
158-
$this->setAttribute('style', "${styleProperty}: $value; " . $this->getAttribute('style') ?? '');
158+
$this->setAttribute('style', "{$styleProperty}: $value; " . $this->getAttribute('style') ?? '');
159159
return $this->getAttribute('style') ?? '';
160160
}
161161
}

app/code/Magento/PageBuilder/Model/Filter/Template.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,12 @@ function ($errorNumber, $errorString) {
170170
throw new DOMException($errorString, $errorNumber);
171171
}
172172
);
173-
$string = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
173+
$convmap = [0x80, 0x10FFFF, 0, 0x1FFFFF];
174+
$string = mb_encode_numericentity(
175+
$html,
176+
$convmap,
177+
'UTF-8'
178+
);
174179
try {
175180
libxml_use_internal_errors(true);
176181
// LIBXML_SCHEMA_CREATE option added according to this message

app/code/Magento/PageBuilder/Model/Stage/HtmlFilter.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,17 @@ public function __construct(
4141
public function filterHtml(string $content): string
4242
{
4343
$dom = new \DOMDocument('1.0', 'UTF-8');
44+
$previous = '';
4445
try {
4546
//this code is required because of https://bugs.php.net/bug.php?id=60021
4647
$previous = libxml_use_internal_errors(true);
4748
$content = '<div>' . $content . '</div>';
48-
$string = mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8');
49+
$convmap = [0x80, 0x10FFFF, 0, 0x1FFFFF];
50+
$string = mb_encode_numericentity(
51+
$content,
52+
$convmap,
53+
'UTF-8'
54+
);
4955
$dom->loadHTML($string, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
5056
} catch (\Exception $e) {
5157
$this->loggerInterface->critical($e->getMessage());

app/code/Magento/PageBuilder/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This setting determines the `is_pagebuilder_enabled` configuration value.
2020

2121
You can disable the PageBuilder module for a specific field by adding the following entry to a field configuration in an XML configuration file:
2222

23-
```
23+
```xml
2424
<item name="wysiwygConfigData" xsi:type="array">
2525
<item name="is_pagebuilder_enabled" xsi:type="boolean">false</item>
2626
</item>
@@ -30,7 +30,7 @@ You can disable the PageBuilder module for a specific field by adding the follow
3030

3131
The following example disables the PageBuilder editor for the content field.
3232

33-
```
33+
```xml
3434
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
3535
<fieldset name="content" sortOrder="10">
3636
<field name="content" formElement="wysiwyg">
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
10+
<test name="AdminAddWidgetToWYSIWYGWithTaxRuleForBundleProductInRecentlyViewedWidgetTest">
11+
<before>
12+
<magentoCLI command="config:set cms/pagebuilder/enabled 0" stepKey="disablePageBuilder" after="enableTinyMCE"/>
13+
</before>
14+
<after>
15+
<magentoCLI command="config:set cms/pagebuilder/enabled 1" stepKey="enablePageBuilder" after="disableWYSIWYG"/>
16+
</after>
17+
</test>
18+
</tests>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderBannerCommonTest/BannerTextContainingPageBuilderMarkupWontBreakStageTest.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,15 @@
3838
<dontSeeElement selector="{{HtmlOnStage.base('1')}}" stepKey="dontSeeHtmlCode"/>
3939
<waitForElementVisible selector="{{BannerOnBackend.base('1')}}" stepKey="waitForBannerVisible"/>
4040
<seeElement selector="{{BannerOnBackend.messageContent('1', PageBuilderBannerMessageProperty.value)}}" stepKey="seeTestStringInBanner"/>
41+
<actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreenDesktop"/>
42+
<actionGroup ref="AdminSaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPageDesktop"/>
43+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
44+
<actionGroup ref="dragContentTypeToStage" stepKey="dragRowToRootContainer">
45+
<argument name="contentType" value="PageBuilderRowContentType"/>
46+
<argument name="containerTargetType" value="PageBuilderRootContainerContentType"/>
47+
</actionGroup>
48+
<dontSeeElement selector="{{HtmlOnStage.base('1')}}" stepKey="dontSeeHtmlCodeAfterSave"/>
49+
<waitForElementVisible selector="{{BannerOnBackend.base('1')}}" stepKey="waitForBannerVisibleAfterSave"/>
50+
<seeElement selector="{{BannerOnBackend.messageContent('1', PageBuilderBannerMessageProperty.value)}}" stepKey="seeTestStringInBannerAfterSave"/>
4151
</test>
4252
</tests>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderSlideItemCommonTest/SlideItemTextContainingPageBuilderMarkupWontBreakStageTest.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,15 @@
4040
<dontSeeElement selector="{{HtmlOnStage.base('1')}}" stepKey="dontSeeHtmlCode"/>
4141
<waitForElementVisible selector="{{SlideOnBackend.base('1')}}" stepKey="waitForSlideItemVisible"/>
4242
<seeElement selector="{{SlideOnBackend.messageContent('1', PageBuilderSlideItemButtonText_Common.value)}}" stepKey="seeTestStringInSlideItem"/>
43+
<actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreenDesktop"/>
44+
<actionGroup ref="AdminSaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPageDesktop"/>
45+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
46+
<actionGroup ref="dragContentTypeToStage" stepKey="dragRowToRootContainer">
47+
<argument name="contentType" value="PageBuilderRowContentType"/>
48+
<argument name="containerTargetType" value="PageBuilderRootContainerContentType"/>
49+
</actionGroup>
50+
<dontSeeElement selector="{{HtmlOnStage.base('1')}}" stepKey="dontSeeHtmlCodeAfterSave"/>
51+
<waitForElementVisible selector="{{SlideOnBackend.base('1')}}" stepKey="waitForSlideItemVisibleAfterSave"/>
52+
<seeElement selector="{{SlideOnBackend.messageContent('1', PageBuilderSlideItemButtonText_Common.value)}}" stepKey="seeTestStringInSlideItemAfterSave"/>
4353
</test>
4454
</tests>

app/code/Magento/PageBuilder/Test/Mftf/Test/AdminPageBuilderTextTest/TextContainingPageBuilderMarkupWontBreakStageTest.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,16 @@
4040
<waitForElementVisible selector="{{TextOnStage.base('1')}}" stepKey="waitForTextVisible"/>
4141
<seeElement selector="{{TextOnStage.base('1')}}" stepKey="seeText"/>
4242
<seeElement selector="{{TextOnStage.text('1', PageBuilderTextProperty.value)}}" stepKey="seeTestStringInText"/>
43+
<actionGroup ref="exitPageBuilderFullScreen" stepKey="exitPageBuilderFullScreenDesktop"/>
44+
<actionGroup ref="AdminSaveAndContinueEditCmsPageActionGroup" stepKey="saveAndContinueEditCmsPageDesktop"/>
45+
<actionGroup ref="switchToPageBuilderStage" stepKey="switchToPageBuilderStage"/>
46+
<actionGroup ref="dragContentTypeToStage" stepKey="dragRowToRootContainer">
47+
<argument name="contentType" value="PageBuilderRowContentType"/>
48+
<argument name="containerTargetType" value="PageBuilderRootContainerContentType"/>
49+
</actionGroup>
50+
<dontSeeElement selector="{{HtmlOnStage.base('1')}}" stepKey="dontSeeHtmlCodeAfterSave"/>
51+
<waitForElementVisible selector="{{TextOnStage.base('1')}}" stepKey="waitForTextVisibleAfterSave"/>
52+
<seeElement selector="{{TextOnStage.base('1')}}" stepKey="seeTextAfterSave"/>
53+
<seeElement selector="{{TextOnStage.text('1', PageBuilderTextProperty.value)}}" stepKey="seeTestStringInTextAfterSave"/>
4354
</test>
4455
</tests>

0 commit comments

Comments
 (0)