มีไฟล์ XML โครงร่างธีมโลคัลอื่นที่ไม่ใช่ local.xml หรือไม่?


14

ฉันสร้างธีมโดยการสร้างและแก้ไขไฟล์ต่อไปนี้:

frontend/mypackage/default/layout/local.xml

ฉันมีมุมมองร้านค้า "site1" และต้องการสร้างข้อยกเว้นเกี่ยวกับ local.xml เริ่มต้นของ "mypackage" ดังนั้นฉันจึงสร้างไฟล์นี้:

frontend/mypackage/site1/layout/local.xml

อย่างไรก็ตามทันทีที่ฉันสร้างไฟล์นี้วีโอไอพีจะข้ามการเปลี่ยนแปลง local.xml เริ่มต้น

ฉันจะบอก Magento ให้ใช้ local.xml จากค่าเริ่มต้นและเพิ่มการเปลี่ยนแปลงใน local.xml ของ site1 ได้อย่างไร


ไม่มีทาง. ขอโทษ คำถามที่ดีโดยวิธีการ
— user487772

ฉันกำลังเผชิญสถานการณ์เดียวกันนี้ ฉันจะขยาย local.xml จากชุดรูปแบบเริ่มต้นแทนที่ไม่สมบูรณ์ มันแย่มากที่มันจะแทนที่ด้วยธีมย่อยที่เลือกทั้งหมด
— Axel

ไม่เหมือน default.xml หรือไม่ หรือว่าเราจะแฮ็ครหัสหลักของวีโอไอพีซึ่งสำรวจไฟล์ xml เพื่อตรวจสอบ default.xml ด้วย?
— Gerard Nijboer

คำตอบ:


7

ตั้งแต่ Magento 1.9 คุณสามารถเพิ่มการอัพเดตเลย์เอาต์ที่กำหนดเองในetc/theme.xmlลักษณะนี้:

<theme>
    <layout>
        <updates>
            <my_theme>
                <file>my_theme.xml</file>
            </my_theme>
        </updates>
    </layout>
</theme>

หากคุณกำหนดโครงร่างเฉพาะของธีมเช่นนี้แทนการใช้local.xmlเป็นเรื่องง่ายที่จะเพิ่มการอัพเดตอื่นในธีมลูก

แต่น่าเสียดายที่ปัญหาเดียวกันนี้เกิดขึ้นกับ theme.xml ที่มีการใช้งานเพียงธีมเดียวจากธีมจริงของคุณไม่ใช่ปัญหาจากธีมหลัก แต่มีความซ้ำซ้อนน้อยกว่ามาก

ตัวอย่างtheme.xmlสำหรับธีมลูก:

<theme>
    <layout>
        <updates>
            <my_theme>
                <file>my_theme.xml</file>
            </my_theme>
            <my_child_theme>
                <file>my_child_theme.xml</file>
            </my_child_theme>
        </updates>
    </layout>
</theme>

แหล่งข้อมูลและข้อมูลเพิ่มเติม: http://alanstorm.com/magento_infinite_fallback_theme_xml


5

Magento ไม่รวมการเปลี่ยนแปลง local.xml จากไฟล์ local.xml อื่น ๆ วิธีที่ใช้ธีมสำรอง Magento คือไฟล์ใด ๆ ที่พบในชุดรูปแบบ / แพ็คเกจปัจจุบันจะเป็นที่ต้องการและใช้กับไฟล์ธีม / แพ็กเกจอื่น ๆ ที่มีชื่อคล้ายกัน

ด้วยวิธีนี้คุณไม่สามารถสร้างการแทนที่แบบผสาน สิ่งนี้จะเป็นไปได้ใน Magento 2 แต่ไม่สามารถทำได้ใน Magento 1.x

น่าเสียดายที่คุณจะต้องคัดลอกไปยังชุดรูปแบบท้องถิ่นของคุณจากค่าเริ่มต้นและทำการแก้ไข

ขอให้โชคดี


2
+1 สิ่งนี้สามารถเกิดขึ้นได้อย่างเป็นระบบ แต่จะไม่คุ้มค่ากับความพยายาม
— user487772

3

ฟิลนั้นถูกต้องอย่างแน่นอน แต่ในทางทฤษฎีแล้วมันมีวิธีการแก้ปัญหา

คุณสามารถสร้างโมดูลที่กำหนดเองซึ่งจะแนะนำการปรับปรุงโครงร่าง จากนั้นในโมดูลคุณสามารถตรวจสอบว่ามุมมองร้านค้าไม่ใช่มุมมองที่จำเป็นและลบการปรับปรุงเค้าโครงนี้หรือไม่

สิ่งที่ไม่ดีเกี่ยวกับวิธีนี้คือคุณจะฮาร์ดโค้ดมุมมองร้านค้า และโดยรวมแล้วนี่ดูไม่สวยเลย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.