Para los system.xmlarchivos no funciona como lo hace para los archivos de clase. Los system.xmlarchivos se recopilan de los módulos activos de Magento. Simplemente copiar uno en la localcarpeta no significa que esté en un módulo, porque el archivo de declaración del módulo todavía dice que el módulo pertenece al conjunto de corecódigos.
Si desea agregar nuevos campos a una sección o anular algunos de los campos que necesita para crear su propio módulo.
Aquí hay un ejemplo de cómo puede agregar un nuevo campo en la sección Catalog->Frontendy cómo puede anular uno en la misma sección.
Digamos que su módulo se llama Easylife_Catalog.
Necesitará los siguientes archivos:
app/etc/modules/Easylife_Catalog.xml- el archivo de declaración
<?xml version="1.0"?>
<config>
<modules>
<Easylife_Catalog>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Catalog />
</depends>
</Easylife_Catalog>
</modules>
</config>
app/code/local/Easylife/Catalog/etc/config.xml - el archivo de configuración
<?xml version="1.0"?>
<config>
<modules>
<Easylife_Catalog>
<version>0.0.1</version>
</Easylife_Catalog>
</modules>
</config>
app/etc/local/Easylife/Catalog/etc/system.xml- sistema-> archivo de configuración
Supongamos que desea cambiar el List Modecampo para que esté disponible solo a nivel global (sin nivel de vista de sitio web y tienda). La ruta de configuración es catalog/frontend/list_mode. Entonces system.xmlse verá así:
<?xml version="1.0"?>
<config>
<sections>
<catalog><!-- first part of the path -->
<groups>
<frontend><!-- second part of the path -->
<fields>
<list_mode><!-- third part of the path -->
<show_in_website>0</show_in_website><!-- this will override the core value -->
<show_in_store>0</show_in_store><!-- this will override the core value -->
</list_mode>
</fields>
</frontend>
</groups>
</catalog>
</sections>
</config>
Ahora supongamos que desea agregar un nuevo campo llamado customen la misma sección de configuración. Ahora el xml anterior se convierte
<?xml version="1.0"?>
<config>
<sections>
<catalog><!-- first part of the path -->
<groups>
<frontend><!-- second part of the path -->
<fields>
<list_mode><!-- third part of the path -->
<show_in_website>0</show_in_website><!-- this will override the core value -->
<show_in_store>0</show_in_store><!-- this will override the core value -->
</list_mode>
<custom translate="label"><!-- your new field -->
<label>Custom</label>
<frontend_type>text</frontend_type>
<sort_order>1000</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</custom>
</fields>
</frontend>
</groups>
</catalog>
</sections>
</config>
No sé si hay un método para eliminar algún campo de la configuración usando este método. Lo busqué pero no encontré nada.
app/etc/modules) se cargan, luego<depends>se analizan todas las etiquetas y se establece una jerarquía de módulos. entonces los módulos se cargan en ese orden.