Skip to content

Commit a37fdfa

Browse files
committed
#544: Configurable Page Builder Full Screen Mode
- Adding `overrideSnapshot` Argument for Categories - Refactoring `category_form.xml`
1 parent 5318032 commit a37fdfa

File tree

4 files changed

+27
-9
lines changed

4 files changed

+27
-9
lines changed

app/code/Magento/PageBuilder/Component/Form/Element/Wysiwyg.php

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@
77

88
namespace Magento\PageBuilder\Component\Form\Element;
99

10+
use Magento\Framework\App\ObjectManager;
1011
use Magento\Framework\Data\FormFactory;
1112
use Magento\Framework\View\Element\UiComponent\ContextInterface;
13+
use Magento\PageBuilder\Model\View\File\Collector\PageBuilder;
1214
use Magento\Ui\Component\Wysiwyg\ConfigInterface;
1315
use Magento\Catalog\Api\CategoryAttributeRepositoryInterface;
1416
use Magento\Framework\Exception\NoSuchEntityException;
17+
use Magento\PageBuilder\Model\Config as PageBuilderConfig;
1518
use Magento\PageBuilder\Model\State as PageBuilderState;
1619
use \Magento\PageBuilder\Model\Stage\Config as Config;
1720

@@ -34,6 +37,8 @@ class Wysiwyg extends \Magento\Ui\Component\Form\Element\Wysiwyg
3437
* @param array $components
3538
* @param array $data
3639
* @param array $config
40+
* @param PageBuilderConfig $pageBuilderConfig
41+
* @param bool $overrideSnapshot
3742
*/
3843
public function __construct(
3944
ContextInterface $context,
@@ -44,7 +49,9 @@ public function __construct(
4449
Config $stageConfig,
4550
array $components = [],
4651
array $data = [],
47-
array $config = []
52+
array $config = [],
53+
PageBuilderConfig $pageBuilderConfig = null,
54+
bool $overrideSnapshot = false
4855
) {
4956
$wysiwygConfigData = isset($config['wysiwygConfigData']) ? $config['wysiwygConfigData'] : [];
5057
// If a dataType is present we're dealing with an attribute
@@ -69,12 +76,24 @@ public function __construct(
6976
$data['config']['template'] = 'Magento_PageBuilder/form/element/wysiwyg';
7077
$data['config']['elementTmpl'] = 'Magento_PageBuilder/form/element/wysiwyg';
7178
$wysiwygConfigData = $stageConfig->getConfig();
79+
80+
if ($overrideSnapshot) {
81+
$pageBuilderConfig = $pageBuilderConfig ?: ObjectManager::getInstance()->get(PageBuilderConfig::class);
82+
$wysiwygConfigData['pagebuilder_content_snapshot'] = $pageBuilderConfig->isContentPreviewEnabled();
83+
}
84+
85+
// Add Classes for Page Builder Stage
86+
if (isset($wysiwygConfigData['pagebuilder_content_snapshot'])
87+
&& $wysiwygConfigData['pagebuilder_content_snapshot']) {
88+
$data['config']['additionalClasses'] = 'admin__field-wide admin__field-page-builder';
89+
}
90+
7291
$data['config']['wysiwygConfigData'] = isset($config['wysiwygConfigData']) ?
7392
array_replace_recursive($config['wysiwygConfigData'], $wysiwygConfigData) :
7493
$wysiwygConfigData;
7594
$wysiwygConfigData['activeEditorPath'] = 'Magento_PageBuilder/pageBuilderAdapter';
95+
7696
$config['wysiwygConfigData'] = $wysiwygConfigData;
77-
$wysiwygConfigData['activeEditorPath'] = 'Magento_PageBuilder/pageBuilderAdapter';
7897
}
7998

8099
parent::__construct($context, $formFactory, $wysiwygConfig, $components, $data, $config);

app/code/Magento/PageBuilder/etc/adminhtml/di.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -613,6 +613,11 @@
613613
<argument name="staticFileSize" xsi:type="number">4194304</argument>
614614
</arguments>
615615
</virtualType>
616+
<virtualType name="Magento\PageBuilder\Component\Form\Element\CategoryWysiwyg" type="Magento\PageBuilder\Component\Form\Element\Wysiwyg">
617+
<arguments>
618+
<argument name="overrideSnapshot" xsi:type="boolean">true</argument>
619+
</arguments>
620+
</virtualType>
616621
<type name="Magento\PageBuilder\Ui\Component\Template\DataProvider">
617622
<arguments>
618623
<argument name="additionalFilterPool" xsi:type="array">

app/code/Magento/PageBuilder/etc/di.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
99
<preference for="Magento\Ui\Component\Form\Element\Wysiwyg" type="Magento\PageBuilder\Component\Form\Element\Wysiwyg" />
10-
<preference for="Magento\Catalog\Ui\Component\Category\Form\Element\Wysiwyg" type="Magento\PageBuilder\Component\Form\Element\Wysiwyg" />
10+
<preference for="Magento\Catalog\Ui\Component\Category\Form\Element\Wysiwyg" type="Magento\PageBuilder\Component\Form\Element\CategoryWysiwyg" />
1111
<preference for="Magento\Framework\Data\Form\Element\Editor" type="Magento\PageBuilder\Block\Element\Editor" />
1212
<preference for="Magento\PageBuilder\Model\ConfigInterface" type="Magento\PageBuilder\Model\Config" />
1313
<preference for="Magento\PageBuilder\Model\Dom\Adapter\AttrInterface" type="Magento\PageBuilder\Model\Dom\Attr" />

app/code/Magento/PageBuilder/view/adminhtml/ui_component/category_form.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,10 @@
1212
<item name="config" xsi:type="array">
1313
<item name="wysiwygConfigData" xsi:type="array">
1414
<item name="is_pagebuilder_enabled" xsi:type="boolean">true</item>
15-
<item name="pagebuilder_content_snapshot" xsi:type="boolean">true</item>
1615
<item name="pagebuilder_button" xsi:type="boolean">true</item>
1716
</item>
1817
</item>
1918
</argument>
20-
<settings>
21-
<additionalClasses>
22-
<class name="admin__field-wide admin__field-page-builder">true</class>
23-
</additionalClasses>
24-
</settings>
2519
</field>
2620
</fieldset>
2721
</form>

0 commit comments

Comments
 (0)