ฉันจะเพิ่มเลย์เอาต์ของเพจในโมดูล Mage_Page ได้อย่างไร


11

ผมค้นพบหลังจากการปรับรุ่นวีโอไอพีที่แกนMage_Page's config.xmlได้รับการแก้ไขด้วยตนเองและตอนนี้ฉันกำลังมองหาเพื่อเปลี่ยน XML ในทางที่ไม่หลักไม่ได้เขียนทับ

นี่คือตัวอย่างของแกน XML:

<config>
    <modules>
        <Mage_Page>
            <version>1.6.0.0</version>
        </Mage_Page>
    </modules>
    <global>
        <models>
            <page>
                <class>Mage_Page_Model</class>
            </page>
        </models>
        <blocks>
            <page>
                <class>Mage_Page_Block</class>
            </page>
        </blocks>
        <page>
            <layouts>
                <empty module="page" translate="label">
                    <label>Empty</label>
                    <template>page/empty.phtml</template>
                    <layout_handle>page_empty</layout_handle>
                </empty>
                <one_column module="page" translate="label">
                    <label>1 column</label>
                    <template>page/1column.phtml</template>
                    <layout_handle>page_one_column</layout_handle>
                    <is_default>1</is_default>

ฉันกำลังมองหาที่จะเพิ่มรูปแบบอื่นเช่นหรือone_column ดูเหมือนว่าการemptyเขียนทับconfig.xmlด้วยapp/code/local/Mage/Page/etc/config.xmlจะไม่ทำงานฉันควรดำเนินการอย่างไรโดยไม่แตะที่แกนกลาง

คำตอบ:


5

สร้างโมดูลที่ขึ้นกับ Mage_Page และเพิ่มโครงร่างใหม่ในการกำหนดค่าของคุณเอง:

app / etc / โมดูล / My_Layout.xml

<?xml version="1.0"?>
<config>
    <modules>
        <My_Layout>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Page />
            </depends>
        </My_Layout>
    </modules>
</config>

app / รหัส / ท้องถิ่น / My / เค้าโครง / etc / config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <My_Layout>
            <version>1.0.0</version>
        </My_Layout>
    </modules>
    <global>
        <page>
            <layouts>
                <my_layout module="page" translate="label">
                    <label>My Layout</label>
                    <template>page/mylayout.phtml</template>
                    <layout_handle>my_layout</layout_handle>
                </my_layout>
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <my_layout module="My_Layout">
                    <file>my_layout.xml</file>
                </my_layout>
            </updates>
        </layout>
    </frontend>
</config>

app / ออกแบบ / ส่วนหน้า / ฐาน / default / รูปแบบ / my_layout.xml

<?xml version="1.0"?>
<layout version="0.1.0">
    <my_layout translate="label">
        <label>All My Layout Pages</label>
        <reference name="root">
            <action method="setTemplate"><template>page/mylayout.phtml</template></action>
            <!-- Mark root page block that template is applied -->
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </my_layout>
</layout>

ยังดีที่จะให้หมายเลขอ้างอิงการปรับปรุงเค้าโครงที่เกี่ยวข้องในแฟ้มการปรับปรุงเค้าโครงแบบกำหนดเองสำหรับโมดูล อ้างอิงโครงร่างดั้งเดิมในMage_Pageโมดูล (ลิงก์)และประกาศหมายเลขอ้างอิงการอัพเดท
เครื่องหมายที่

@ เครื่องหมายเสร็จแล้ว! :)
Rick Kuipers

1

มีตัวเลือกในการเพิ่มสิ่งที่คุณต้องการในแอพ / etc / local.xml เพียงแค่สร้างโหนด global / page / layouts และเพิ่มสิ่งที่คุณต้องการ มันไม่ได้เป็นโซลูชั่นที่สง่างามที่สุด แต่มันใช้งานได้ดีถ้าคุณไม่ต้องการที่จะสร้างโมดูลเฉพาะสำหรับวัตถุประสงค์ในการเพิ่มแม่แบบเค้าโครง หากคุณวางแผนที่จะแจกจ่ายการกำหนดค่าโครงร่างนี้ไปยังร้านค้าอื่น ๆ ให้ทำโมดูลโลคัล / ชุมชนสำหรับมัน

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