มีไฟล์ 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.