Mage_Page modülüne nasıl sayfa düzeni ekleyebilirim?


11

Ben çekirdek o yükseltme Magento sonra keşfedilen Mage_Page'ın config.xmlel ile düzenlenebilir olmuştu ve şimdi yazma çekirdeği does not şekilde XML değiştirmeye arıyorum.

İşte temel XML örneği:

<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_columnVeya gibi başka bir düzen eklemek istiyorum empty. Üzerine yazmak config.xmlile app/code/local/Mage/Page/etc/config.xmlişe görünmüyordu, nasıl dokunmadan çekirdeği olmadan yapıyor hakkında gitmek gerekir?

Yanıtlar:


5

Mage_Page'e bağımlı bir modül oluşturun ve yeni düzeni kendi yapılandırmanıza ekleyin:

Uygulamanın / etc / modules / 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>

Uygulamanın / kod / yerel / My / Düzen / 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>

Uygulamanın / tasarım / kullanıcı arayüzü / baz / default / düzeni / 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>

Modül için özel bir düzen güncelleme dosyasında ilgili düzen güncelleme tutamacını sağlamak da iyidir. Ref orijinal düzeni yapılandırmasını Mage_Pagemodülü (link) ve karşılık gelen güncelleme kolu bildirimleri (link)
benmarks

@benmarks bitti! :)
Rick Kuipers

1

/ Etc / local.xml uygulamasına ihtiyacınız olanı ekleme seçeneği vardır, sadece global / page / düzenleri düğümü oluşturun ve orada istediğinizi ekleyin. En zarif çözüm değildir, ancak bir düzen şablonu eklemek amacıyla özel bir modül oluşturmak istemiyorsanız iyi çalışır. Bu düzen yapılandırmasını daha fazla mağazaya dağıtmayı planlıyorsanız, bunun için bir yerel / topluluk modülü yapın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.