สำหรับsystem.xml
ไฟล์มันไม่ทำงานเหมือนที่ทำกับไฟล์คลาส system.xml
ไฟล์จะถูกเก็บรวบรวมจากโมดูลที่ใช้งานของวีโอไอพี เพียงแค่คัดลอกไฟล์ในlocal
โฟลเดอร์มันไม่ได้หมายความว่ามันอยู่ในโมดูลเพราะไฟล์ประกาศของโมดูลยังบอกว่าโมดูลนั้นเป็นของcore
codepool
หากคุณต้องการเพิ่มเขตข้อมูลใหม่ลงในส่วนหรือแทนที่เขตข้อมูลบางส่วนที่คุณต้องการสร้างโมดูลของคุณเอง
นี่คือตัวอย่างของวิธีที่คุณสามารถเพิ่มเขตข้อมูลใหม่ในส่วน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
- system-> ไฟล์กำหนดค่า
สมมติว่าคุณต้องการเปลี่ยน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>
ฉันไม่รู้ว่ามีวิธีลบบางฟิลด์จากการกำหนดค่าโดยใช้วิธีนี้หรือไม่ ฉันมองหามัน แต่ไม่พบอะไรเลย