ฉันจะพยายามให้คำตอบทั่วไป
วิธีการเปลี่ยนแม่แบบ
ในธีมของคุณคุณสามารถแทนที่phtml
ไฟล์ใดก็ได้จากธีมเริ่มต้นหรือธีมหลัก คัดลอกไฟล์ต้นฉบับไปapp/design/frontend/[package]/[theme]/template/[path/to/phtml]
และทำการเปลี่ยนแปลงของคุณ
หากคุณยังไม่มีธีมที่กำหนดเองเฉพาะโครงการเช่นเนื่องจากคุณเพิ่งซื้อธีมต้องแน่ใจว่าได้สร้างธีมที่
app/design/frontend/[original-package]/[project-name]
มันจะสืบทอดมาจาก[original-package]/[default]
คุณไม่จำเป็นต้องคัดลอกทุกอย่างจากค่าเริ่มต้นเพียงแค่ไฟล์ที่คุณต้องการทำการเปลี่ยนแปลง
การเปลี่ยนแปลงเฉพาะโมดูล
อีกทางเลือกหนึ่งในการแทนที่phtml
ไฟล์คือการเปลี่ยนเส้นทางของเทมเพลต โดยปกติสามารถทำได้ในโครงร่าง XML ดังนี้:
<reference name="the-block-name">
<action method="setTemplate"><name>path/to/new/template.phtml</name></action>
</reference>
แต่นี่มีวัตถุประสงค์เพื่อใช้งานโดยโมดูลที่ต้องการเปลี่ยนเทมเพลตไม่ใช่สำหรับการเปลี่ยนแปลงเฉพาะของธีม เทมเพลตใหม่ควรเป็นเช่นbase/default
นั้น
วิธีใช้ local.xml / theme.xml
local.xml
ไฟล์ต้องอยู่ในไดเรกทอรีของชุดรูปแบบที่เกิดขึ้นจริงที่คุณใช้คือ
app/design/frontend/[package]/[theme]/layout
หลายlocal.xml
ไฟล์ในลำดับชั้นทางเลือกจะไม่นำมาพิจารณา ครั้งแรกของสิ่งเหล่านี้ที่สามารถพบได้ถูกนำมาใช้:
app/design/frontend/[package]/[theme]/layout/local.xml
app/design/frontend/[package]/default/layout/local.xml
app/design/frontend/base/default/layout/local.xml
(สมมติว่าลำดับชั้นเริ่มต้นและไม่มีลำดับชั้นที่กำหนดเอง)
วิธีทำการเปลี่ยนแปลง
คุณควรมีการแก้ไขเฉพาะใน local.xml ไม่ใช่คำจำกัดความซ้ำที่มีอยู่ในไฟล์ XML ดั้งเดิมแล้ว นั่นหมายถึงหลีกเลี่ยงการคัดลอกไฟล์ XML จากธีมเริ่มต้นเพื่อทำการเปลี่ยนแปลงโดยตรงในไฟล์ รักษาlayout
ไดเรกทอรีของชุดรูปแบบของคุณให้สะอาด!
องค์ประกอบทั่วไปของlocal.xml
คือ<remove>
การลบบล็อกที่มีอยู่ทั้งหมด<action method="unsetChild">
และ<action method="append">
ย้ายบล็อกจากผู้ปกครองหนึ่งไปยังอีกหรือเรียกวิธีการอื่น ๆ ในบล็อกที่มีอยู่เพื่อปรับเปลี่ยนพฤติกรรมของพวกเขา
Magento 1.9
เริ่มต้นด้วย Magento 1.9 การปฏิบัติที่ดีที่สุดคือการไม่ใช้layout/local.xml
การเปลี่ยนแปลงเหล่านี้ แต่จริงๆแล้วetc/theme.xml
ในระยะสั้นคุณสามารถเพิ่มการปรับปรุงเค้าโครงในแอพ / design / frontend / yourpackage / etc / theme.xml ข้อดีคือคุณสามารถควบคุมลำดับการโหลดของการอัพเดตเลย์เอาต์ของคุณ ก่อนที่ Magento 1.9 local.xml จะถูกโหลดครั้งสุดท้ายเสมอและมันเป็นไปไม่ได้ที่จะมีการเรียกใช้คำสั่งเลย์เอาต์หลังจากนั้น
ฉันไม่ได้ใช้ local.xml อีกต่อไปสำหรับการแก้ไขธีมเฉพาะโครงการ ฉันคิดว่า local.xml ใช้เพื่อเหตุผลด้านความเข้ากันได้แบบย้อนหลัง (ใน 1.9 และสูงกว่า) เนื่องจากไม่มีประโยชน์ในการใช้งานอีกต่อไป Local.xml ถูกกำจัดใน Magento 2 ด้วย ( https://github.com/magento/magento2/issues/1037 )
ที่มา: https://erfanimani.com/dont-use-local-xml/