Since version 2.4.3, Magento includes the Page Builder module in both Commerce and Community Editions, empowering merchants to create rich content by themselves or allowing them to quickly design quick mockups for testing before escalating to any development team.
By making Page Builder open to all editions Magento is encouraging developers to extend the Page Builder functions, sometimes forcing developers to explore deeper into the code when the extended function or behavior differs from the original.
It might be possible that after working with Page Builder the following message is displayed after saving some element that contains a Page Builder content:
This message of “Temporarily allowed to save HTML value that contains restricted elements. Allowed HTML tags are:…” represents a warning message, not an error. The Page Builder is working normally, but the validator is telling us to be careful with content that is not expected by the validator, located in Magento\Cms\Model\Wysiwyg\Validator in the following line
…
$this->config->isSetFlag(self::CONFIG_PATH_THROW_EXCEPTION);
try {
$this->validator->validate($content);
} catch (ValidationException $exception) {
…
How to fix the warning message?
Step 1:
Log the $content variable, check what kind of html content is saving and take note of all the div and attributes elements being used.
Step 2:
On your module vendor/module/etc/di.xml create a Virtual Type called DefaultWYSIWYGValidator and provide all the allowed tags and attributes used by your Magento app:
<virtualType name=”DefaultWYSIWYGValidator” type=”Magento\Framework\Validator\HTML\ConfigurableWYSIWYGValidator”>
<arguments>
<argument name=”allowedTags” xsi:type=”array”>
<item name=”div” xsi:type=”string”>div</item>
<item name=”a” xsi:type=”string”>a</item>
…
<item name=”b” xsi:type=”string”>b</item>
</argument>
<argument name=”allowedAttributes” xsi:type=”array”>
<item name=”class” xsi:type=”string”>class</item>
…
<item name=”id” xsi:type=”string”>id</item>
</argument>
<argument name=“attributesAllowedByTags” xsi:type=”array”>
<item name=”div” xsi:type=”array”>
<item name=”data-content-type” xsi:type=”string”>data-content-type</item>
…
<item name=”data-content” xsi:type=”string”>data-content</item>
</item>
<item name=”ul” xsi:type=”array”>
…
<argument name=”attributeValidators” xsi:type=”array”>
<item name=”style” xsi:type=”object”>Magento\Framework\Validator\HTML\StyleAttributeValidator</item>
</argument>
</arguments>
</virtualType>
Step 3:
Refresh cache
bin/magento cache:flush
After this the warning message will not be displayed anymore because the validator is already recognizing all the possible html elements introduced by the new changes. Improving the general experience of using Page Builder.