Cómo agregar un modificador PHP personalizado en el componente UI

El uso de modificadores es opcional y puede ser necesario cuando la declaración estática en archivos de configuración XML no es adecuada para las tareas.

Ejemplo: en los casos en que necesitemos datos adicionales, se deben cargar desde la base de datos.

Implementación de modificador PHP personalizado

Utilice los siguientes pasos para implementar un modificador PHP personalizado para un componente de la interfaz de usuario;

Paso 1:

En su módulo personalizado cree una clase que implemente \Magento\Ui\DataProvider\Modifier\ModifierInterface con los siguientes métodos:

<?php

use Magento\Ui\DataProvider\Modifier\ModifierInterface;

class Example implements ModifierInterface
{
    public function modifyMeta(array $meta)
    {
        $meta['test_fieldset_name'] = [
            'arguments' => [
                'data' => [
                    'config' => [
                        'label' => __('Test Label For Fieldset'),
                        'sortOrder' => 50,
                        'collapsible' => true
                    ]
                ]
            ],
            'children' => [
                'test_field_name' => [
                    'arguments' => [
                        'data' => [
                            'config' => [
                                'formElement' => 'select',
                                'componentType' => 'field',
                                'options' => [
                                    ['value' => 'test_value', 'label' => 'Test Value'],
                                    ],
                                'visible' => 1,
                                'required' => 1,
                                'label' => __('Label For Element')
                            ]
                        ]
                    ]
                ]
            ]
        ];

        return $meta;
    }

    /**
     * {@inheritdoc}
     */
    public function modifyData(array $data)
    {
        return $data;
    }
}

Paso 2:

Declarar modificador en <Your_Module_dir>/etc/adminhtml/di.xml. Esta declaración se parece a la siguiente:

<virtualType name="%Webkul\Test\DataProvider\Modifier\Pool%" type="Magento\Ui\DataProvider\Modifier\Pool">
     <arguments>
         <argument name="modifiers" xsi:type="array">
             <item name="modifier_name" xsi:type="array">
                 <item name="class" xsi:type="string">%Webkul\Test\Modifier\YourModifierClass%</item>
                 <item name="sortOrder" xsi:type="number">10</item>
             </item>
         </argument>
     </arguments>
</virtualType>

Webkul\Test\DataProvider\Modifier\Pool Es una clase virtual.

Paso 3:

Para usar su modificador, agregue una dependencia al proveedor de datos de su componente de interfaz de usuario.

<type name="%Webkul\Test\Ui\DataProvider\YourDataProviderClass%">
    <arguments>
        <argument name="pool" xsi:type="object">%Webkul\Test\DataProvider\Modifier\Pool%</argument>
    </arguments>
</type>

Source link

About David Lopez

Informático y experto en redes. Redactor en varios blogs tecnológicos desde hace 4 años y ahora en Steamachine.net

Check Also

Retorno de la inversión con consejos y trucos de subcontratación de procesos empresariales para empresas

En el acelerado panorama empresarial actual, mantenerse competitivo significa buscar constantemente formas innovadoras de optimizar …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *