strong textI am tryring to add WYSIWYG in the custom form in the sections I am trying this but In the form show only fielset not WYSIWYG Editor. Here is my code with path as well:
<?php /** * Copyright © 2016 Magento. All rights reserved. * See COPYING.txt for license details. */
namespace ZainEditorUiComponentPageFormElement;
use MagentoBackendBlockWidgetButton; use MagentoBackendHelperData as DataHelper; use MagentoFrameworkDataFormFactory; use MagentoFrameworkViewElementUiComponentContextInterface; use MagentoUiComponentWysiwygConfigInterface; use MagentoFrameworkViewLayoutInterface;
/** * Catalog Wysiwyg. */ class Wysiwyg extends MagentoUiComponentFormElementWysiwyg {
protected DataHelper $backendHelper;
protected LayoutInterface $layout;
/**
* @param ContextInterface $context
* @param FormFactory $formFactory
* @param ConfigInterface $wysiwygConfig
* @param LayoutInterface $layout
* @param DataHelper $backendHelper
* @param array $components
* @param array $data
* @param array $config
*
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
ContextInterface $context,
FormFactory $formFactory,
ConfigInterface $wysiwygConfig,
LayoutInterface $layout,
DataHelper $backendHelper,
array $components = [],
array $data = [],
array $config = []
) {
$this->layout = $layout;
$this->backendHelper = $backendHelper;
$config['wysiwyg'] = true;
parent::__construct($context, $formFactory, $wysiwygConfig, $components, $data, $config);
$this->setData($this->prepareData($this->getData()));
}
/**
* Prepare wysiwyg content.
*
* @param array $data
*
* @return array
*/
private function prepareData($data)
{
if ($this->editor->isEnabled()) {
$data['config']['content'] .= $this->getWysiwygButtonHtml();
}
return $data;
}
/**
* Return wysiwyg button html.
*
* @return string
*/
private function getWysiwygButtonHtml()
{
return $this->layout->createBlock(
Button::class,
'',
[
'data' => [
'label' => __('WYSIWYG Editor'),
'type' => 'button',
'class' => 'action-wysiwyg',
'onclick' => 'cmsWysiwygEditor.open(''.$this->backendHelper->getUrl(
'cms/page/wysiwyg'
).'', ''.$this->editor->getHtmlId().'')',
],
]
)->toHtml();
} }
and also :
in the form :
<fieldset>
<settings>
<collapsible>true</collapsible>
<label translate="true">WYSWIG EDITOR</label>
</settings>
<field name="content">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="class" xsi:type="string">EguanaVendorCmsUiComponentPageFormElementWysiwyg</item>
<item name="formElement" xsi:type="string">wysiwyg</item>
<item name="wysiwygConfigData" xsi:type="array">
<item name="label" xsi:type="string">Editor</item>
<item name="settings" xsi:type="array">
<item name="theme_advanced_buttons1" xsi:type="string">bold,italic,|,justifyleft,justifycenter,justifyright,|,fontselect,fontsizeselect,|,forecolor,backcolor,|,link,unlink,image,|,bullist,numlist,|,code</item>
<item name="theme_advanced_buttons2" xsi:type="boolean">false</item>
<item name="theme_advanced_buttons3" xsi:type="boolean">false</item>
<item name="theme_advanced_buttons4" xsi:type="boolean">false</item>
<item name="theme_advanced_statusbar_location" xsi:type="boolean">false</item>
</item>
<item name="files_browser_window_url" xsi:type="boolean">false</item>
<item name="height" xsi:type="string">100px</item>
<item name="toggle_button" xsi:type="boolean">true</item>
<item name="add_variables" xsi:type="boolean">false</item>
<item name="add_widgets" xsi:type="boolean">false</item>
<item name="add_images" xsi:type="boolean">false</item>
</item>
<item name="template" xsi:type="string">ui/form/field</item>
<item name="source" xsi:type="string">page</item>
<item name="wysiwyg" xsi:type="boolean">true</item>
<item name="dataScope" xsi:type="string">content</item>
<item name="sortOrder" xsi:type="number">50</item>
<item name="rows" xsi:type="number">8</item>
</item>
</argument>
</field> </fieldset>
Also add this :
<?php
namespace ZainEditor ControllerPortalPage;
class Wysiwyg extends MagentoCatalogControllerAdminhtmlProductWysiwyg {
/**
* Authorization level of a basic admin session
*
* @see _isAllowed()
*/
protected $_aclResource = 'Zain_Editor::zain_editor'; }
Any one help me get out of this