Pregunta

Digamos que he creado un módulo personalizado que ampliará algunas funciones como complementos del módulo principal Magento_Catalog y llamémoslo MyModule.MyModule ya ha sido registrado y activado.

He definido mi módulo y la secuencia para Magento_Catalog en el módulo.xml He creado los plugins y los he declarado en el archivo etc/adminhtml/di.xml

1) ¿El complemento que extiende la clase principal del módulo Magento debe estar en la misma estructura de directorio que el padre que extiende?Por ejemplo, el complemento para MyVendor\MyModule\Block\Adminhtml\Product\Edit.php esté en

namespace MyVendor\MyModule\Block\Adminhtml\Product\MyEdit.php

2) No estoy completamente seguro de qué debo hacer exactamente para que se invoque MyModule cuando voy a la página.

http://mydomain/admin/catalog/product/edit/id/8

Gracias.

¿Fue útil?

Solución

1) ¿El complemento que extiende la clase principal del módulo Magento debe estar en la misma estructura de directorio que el padre que extiende?Por ejemplo:

No, los complementos son clases independientes.

2) No estoy completamente seguro de qué debo hacer exactamente para que se invoque MyModule cuando voy a la página.

Esta pregunta no tiene mucho sentido.Un complemento es básicamente un "escucha" de llamadas a otros métodos de clase pública en Magento.Si tienes un complemento para class A, puede configurar oyentes antes, después y "alrededor" para métodos específicos en la clase A.El oyente anterior le permitirá cambiar los parámetros de la llamada al método.el oyente posterior le permitirá cambiar el valor de los resultados, y el oyente circundante le permitirá hacer cosas adicionales antes de llamar al método, o cancelar la llamada al método por completo.Quizás quieras revisar mi serie de administrador de objetos para todas las características del sistema de objetos de Magento 2.Esto debería ayudarle a decidir cómo desea personalizar el comportamiento del sistema de Magento con su complemento.

Otros consejos

necesitas agregar el di.xml archivo de su módulo este

<preference for="Magento\Catalog\Block\Adminhtml\Product\Edit" type="MyVendor\MyModule\Block\Adminhtml\Product\MyEdit" />

Esto le indicará a Magento que use su clase en lugar de la principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top