Utworzyłem formularz w adminie przy użyciu składników interfejsu użytkownika, więc w mojej view/adminhtml/ui_component/[module]_[entity]_form.xml
mam następujące:
<field name="configuration">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Configuration</item>
<item name="formElement" xsi:type="string">textarea</item>
<item name="source" xsi:type="string">form</item>
<item name="sortOrder" xsi:type="number">30</item>
<item name="dataScope" xsi:type="string">configuration</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
Teraz nie chcę, aby ta wartość była textarea
, ale chcę utworzyć własną magię HTML w backendie dla tej wartości. Ta „HTML Magic” ostatecznie będzie dużą ilością JS / KnockOut, która pod wodą wciąż wysyła ukryte dane podczas publikowania formularza, więc musi być częścią formularza. Próbowałem dodać renderowany, dodając:
<item name="renderer" xsi:type="object">Vendor\Module\Block\Adminhtml\Renderer\Configurator</item>
Ale nadal renderuje obszar tekstowy. Potem spróbowałem zastąpić formElement
klasę niestandardową taką:
<item name="formElement" xsi:type="object">Vendor\Module\Component\Form\Element\Configurator</item>
Ale wtedy pojawia się błąd:
The requested component ("Vendor\Module\Component\Form\Element\Configurator") is not found. Before using, you must add the implementation.
Więc 2 pytania tutaj:
- Czy to właściwy sposób na dodanie niestandardowego elementu formularza do formularza administratora? (a jeśli tak: jak?)
- Niezależnie od wszystkiego: jak mogę dodać implementację? Przeglądam moduł interfejsu użytkownika, aby zobaczyć, jak to zrobili, ale nie mogę nic znaleźć.
magento2
adminhtml
uicomponent
ui-form
Giel Berkers
źródło
źródło
\Magento\Framework\View\Element\UiComponent\Config\Provider\Component\Definition::setComponentData()
możliwości dodania niestandardowego komponentu za pomocą zdarzenia, ale jest to o wiele, wiele wygodniejsze! Naprawdę powinienem bardziej przyjrzeć się tym przykładom Magento 2.Nie jestem pewien, ale myślę, że
shopping cart price rule
dam ci podpowiedź, oto przykładAby uzyskać więcej informacji, możesz odwiedzić ten plik
\vendor\magento\module-sales-rule\view\adminhtml\ui_component\sales_rule_form.xml
źródło