Quiero modificar la extensión de terceros y anular su funcionalidad con la nueva extensión. Pero mi principal preocupación es ¿qué pasa si la extensión de terceros no está habilitada o presente en mi carpeta de Magento? Quiero establecer la dependencia usando ifconfig en system.xml o config.xml pero no estoy seguro a nivel de extensión de cómo verificar si la extensión está presente en la carpeta. TIA
EDITAR: Gracias a @Sander Mangel por la respuesta de dependencia. Ahora déjame ser más claro.
Puedo configurar fácilmente la dependencia usando la aplicación / etc / modules / MyNameSpace_MyModule.xml pero cuando mi extensión de terceros se elimina del sistema, se genera un informe de error y se muestra "Módulo" MyNameSpace_MyModule "requiere el módulo" 3rdPartyExtension " y se detiene la ejecución posterior porque tiene generó una excepción, pero ¿qué sucede si deseo ejecutar más sin generar una excepción? Simplemente, MyExtension no tendrá efecto si la tercera parte de la extensión no está presente sin detener a magento para ejecutar. comprobar. NOTA ifconfig aquí.
<reference name="sales.order.print">
<action method="setTemplate" ifconfig="3rdparty/config">
<template>mytemplate.phtml</template>
</action>
</reference>
Segunda edición: Gracias a Zyava. Hice lo que quería pero digo: si eliminé mi extensión de terceros con fines de prueba para ver qué sucede.
<config>
<sections>
<payment>
<groups>
<3rdparty extension translate="label" module="payment">
<label>3rd Party</label>
<frontend_type>text</frontend_type>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<fields>
<disallowedcustomergroups translate="label comment">
<label>Disallowed Customer Groups</label>
<frontend_type>multiselect</frontend_type>
<sort_order>120</sort_order>
<source_model>adminhtml/system_config_source_customer_group</source_model>
<config_path>mymodule/disallowed_customer_groups</config_path>
<comment><![CDATA[Press control and select multiple groups]]></comment>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<depends><active>1</active></depends>
</disallowedcustomergroups>
</fields>
</3rdpartyextension>
</groups>
</payment>
</sections>
</config>
Entonces puede ver que simplemente he especificado una pestaña basada en la activación de la extensión de terceros. ¿Pero he eliminado completamente la extensión de terceros de mi sistema pero todavía muestra otras opciones de extensiones de terceros? ¿Por qué los muestra aunque he borrado mi caché?
fuente
payment_action
campo que seleccionaOrder
, el campo seauthorization_honor_period
vuelve visible.Las dependencias se pueden establecer en su aplicación / etc / modules XML. Magento verificará si la extensión está disponible.
O use el siguiente código para verificar si una extensión está habilitada. Esto se puede hacer creando un método auxiliar en el espacio de nombres / Módulo / Helper / Data.php
fuente