Đối với các system.xml
tệp, nó không hoạt động giống như đối với các tệp lớp. Các system.xml
tập tin được thu thập từ các mô-đun hoạt động của Magento. Chỉ cần sao chép một trong local
thư mục, điều đó không có nghĩa là nó nằm trong một mô-đun, vì tệp khai báo mô-đun vẫn nói rằng mô-đun thuộc về bộ core
mã.
Nếu bạn muốn thêm các trường mới vào một phần hoặc ghi đè một số trường bạn cần để tạo mô-đun của riêng bạn.
Dưới đây là một ví dụ về cách bạn có thể thêm một trường mới trong phần Catalog->Frontend
và cách bạn có thể ghi đè một trường trong cùng một phần.
Hãy nói rằng mô-đun của bạn được gọi Easylife_Catalog
.
Bạn sẽ cần các tệp sau:
app/etc/modules/Easylife_Catalog.xml
- tệp khai báo
<?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
- tập tin cấu hình
<?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
- tệp hệ thống-> cấu hình
Giả sử bạn muốn thay đổi List Mode
trường chỉ khả dụng ở cấp toàn cầu (không có cấp độ xem trang web và cửa hàng). Đường dẫn thiết lập là catalog/frontend/list_mode
. Sau đó, system.xml
sẽ trông như thế này:
<?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>
Bây giờ hãy giả sử bạn muốn thêm một trường mới được gọi custom
trong cùng một phần cấu hình. Bây giờ xml ở trên trở thành
<?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>
Tôi không biết có phương pháp nào để loại bỏ một số trường khỏi cấu hình bằng phương pháp này không. Tôi đã tìm nó nhưng không tìm thấy gì.