मैंने एक नया फॉर्म एलिमेंट टाइप टाइप किया है Company\Module\Data\Form\Element\PdfButton
, जब यह एडिट पेज के प्रोडक्ट version EE 2.0.7
एडिटिंग के कस्टम टैब (ओवरराइडिंग द्वारा जोड़ा गया Magento\Catalog\Block\Adminhtml\Product\Edit\Tabs
) में इस एलीमेंट का उपयोग करता है ।
Magento EE 2.1 में अपग्रेड करने के बाद, कस्टम टैब गायब हो गया। इसे प्रदर्शित करने के लिए, मैंने उत्पाद पृष्ठ में एक नया टैब बनाने के लिए एक संशोधक जोड़ा। मैंने विक्रेता फ़ाइल में संशोधक को कॉपी करके एक नया टैब सफलतापूर्वक जोड़ा और इसे अपने मॉड्यूल पर इंजेक्ट किया।
लेकिन, जब मैं अपने कस्टम तत्व का उपयोग करना चाहता हूं। तो, मेटा सरणी के बच्चों के क्षेत्र में, मैंने निम्नलिखित कोड जोड़ा:
$children[$website['id']] = [
'arguments' => [
'data' => [
'config' => [
'dataType' => Form\Element\DataType\Number::NAME,
'componentType' => Form\Field::NAME,
'formElement' => Form\Element\Wysiwyg2::NAME,
'description' => __($website['name']),
'tooltip' => $tooltip,
'sortOrder' => $sortOrder,
'dataScope' => 'website_ids.' . $website['id'],
'label' => "Pdf Upload",
'valueMap' => [
'true' => (string)$website['id'],
'false' => '0',
],
'value' => $isChecked ? (string)$website['id'] : '0',
],
],
],
];
इसके बाद, मैंने Form\Element\Wysiwyg
इसे कॉपी किया और इसे चिपका दिया Form\Element\Wysiwyg2
। में Wysiwyg2 कक्षा:
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Ui\Component\Form\Element;
use Magento\Framework\Data\Form\Element\Editor;
use Magento\Framework\Data\Form;
use Magento\Framework\Data\FormFactory;
use Magento\Framework\DataObject;
use Magento\Framework\View\Element\UiComponent\ContextInterface;
use Magento\Ui\Component\Wysiwyg\ConfigInterface;
/**
* Class Input
*/
class Wysiwyg2 extends AbstractElement
{
const NAME = 'wysiwyg2';
/**
* @var Form
*/
protected $form;
/**
* @var Editor
*/
protected $editor;
/**
* @param ContextInterface $context
* @param FormFactory $formFactory
* @param ConfigInterface $wysiwygConfig
* @param array $components
* @param array $data
* @param array $config
*/
public function __construct(
ContextInterface $context,
FormFactory $formFactory,
ConfigInterface $wysiwygConfig,
array $components = [],
array $data = [],
array $config = []
) {
$wysiwygConfigData = isset($config['wysiwygConfigData']) ? $config['wysiwygConfigData'] : [];
$this->form = $formFactory->create();
$this->editor = $this->form->addField(
$context->getNamespace() . '_' . $data['name'],
'Magento\Framework\Data\Form\Element\Editor',
[
'force_load' => true,
'rows' => 20,
'name' => $data['name'],
'config' => $wysiwygConfig->getConfig($wysiwygConfigData),
'wysiwyg' => isset($config['wysiwyg']) ? $config['wysiwyg'] : null,
]
);
$data['config']['content'] = $this->editor->getElementHtml();
parent::__construct($context, $components, $data);
}
/**
* Get component name
*
* @return string
*/
public function getComponentName()
{
return static::NAME;
}}
लेकिन एक त्रुटि है और मुझे नहीं पता कि मुझे उस नाम को कहां जोड़ना चाहिए।
1 exception(s):
Exception #0 (Magento\Framework\Exception\LocalizedException): The requested component ("wysiwyg2") is not found. Before using, you must add the implementation.
Exception #0 (Magento\Framework\Exception\LocalizedException): The requested component ("wysiwyg2") is not found. Before using, you must add the implementation.
#0 /var/www/vhosts/plchk/vendor/magento/module-ui/Model/Manager.php(207): Magento\Framework\View\Element\UiComponent\Config\Provider\Component\Definition->getComponentData('wysiwyg2')
#1 /var/www/vhosts/plchk/vendor/magento/framework/View/Element/UiComponentFactory.php(187): Magento\Ui\Model\Manager->createRawComponentData('wysiwyg2')
#2 /var/www/vhosts/plchk/vendor/magento/module-ui/Component/Form/Field.php(82): Magento\Framework\View\Element\UiComponentFactory->create(1, 'wysiwyg2', Array)
#3 /var/www/vhosts/plchk/vendor/magento/framework/View/Layout/Generator/UiComponent.php(148): Magento\Ui\Component\Form\Field->prepare()
#4 /var/www/vhosts/plchk/vendor/magento/framework/View/Layout/Generator/UiComponent.php(145): Magento\Framework\View\Layout\Generator\UiComponent->prepareComponent(Object(Magento\Ui\Component\Form\Field))