Для system.xmlфайлів він не працює, як це робиться для файлів класу. Ці system.xmlфайли зібрані з активних модулів Magento. Якщо просто скопіювати його в localпапку, це не означає, що він знаходиться в модулі, оскільки файл декларації модуля все ще говорить про те, що модуль належить до coreкодової групи.
Якщо ви хочете додати нові поля до розділу або замінити деякі поля, вам потрібно створити власний модуль.
Ось приклад того, як ви можете додати нове поле до розділу Catalog->Frontendта як ви можете замінити його в тому ж розділі.
Скажімо, ваш модуль викликається Easylife_Catalog.
Вам знадобляться такі файли:
app/etc/modules/Easylife_Catalog.xml- файл декларації
<?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 - файл конфігурації
<?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- системний-> файл конфігурації
Скажімо, ви хочете змінити List Modeполе, щоб воно було доступне лише на глобальному рівні (немає веб-сайту та рівня перегляду магазину). Шлях налаштування є catalog/frontend/list_mode. Тоді system.xmlзаповіт виглядатиме так:
<?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>
Тепер скажімо, що ви хочете додати нове поле, яке називається customв тому ж розділі конфігурації. Тепер xml стає вище
<?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>
Я не знаю, чи є спосіб видалити якесь поле з конфігурації за допомогою цього методу. Я шукав його, але нічого не знайшов.