Özel modül sorunuyla CMS ve Kategori kullanımı için özel mizanpaj ekleme


14

Mağazamda standart Magento düzenlerinden tamamen farklı bir düzen gerektiren bir kategorim var. Bu yüzden 1column.phtml dosyasının yeni bir kopyasını oluşturdum ve yeniden adlandırdım ve test etmek için küçük bir değişiklik yaptım.

Şimdi sorun, özel mizanpajın görünmemesidir. Bir modül oluşturdum (Yönetici> Yapılandırma> Gelişmiş genel bakış bölümünde görüldüğü gibi çalışıyor).

Dosyalarım ve içindekiler aşağıdaki gibidir:

Uygulamanın / etc / modules / Test_Page.xml

    <?xml version="1.0"?>
<config>
    <modules>
        <Test_Page>
            <active>true</active>
            <codePool>community</codePool>
            <version>0.1.0</version>
            <depends>
                <Mage_Page />
            </depends>
        </Test_Page>
    </modules>
</config>

Uygulamanın / kod / yerel / Test / Sayfa / etc / Config.xml

    <?xml version="1.0"?>
<config>
    <modules>
        <Test_Page>
            <version>0.1.0</version>
        </Test_Page>
    </modules>
    <global>
        <page>
            <layouts>
                <homepage module="page" translate="label">
                    <label>Homepage</label>
                    <template>page/home.phtml</template>
                    <layout_handle>homepage</layout_handle>
                </homepage>

                <!-- add more layouts here -->
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <Test_Page>
                    <file>test_page.xml</file>
                </Test_Page>
            </updates>
        </layout>
    </frontend>
</config>

Uygulamanın / tasarım / kullanıcı arayüzü / test / default / düzeni / test_page.xml

    <?xml version="1.0"?> 
<layout>
    <homepage translate="label">
        <label>Home Page</label>
        <reference name="root">
            <action method="setTemplate"><template>page/home.phtml</template></action>
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </homepage> 
</layout>

Berbat ettiğim hiçbir şey göremiyorum, bir modül olarak okunuyor ama özel düzen gösterilmiyor :(

Yanıtlar:


21

Düzen açılır menüsünde görünmesini sağlamak için özel bir modül oluşturmanız gerekir (çekirdek dosyaya bir şey de ekleyebilirsiniz, ancak lütfen bunu yapmayın). Uzantıya Easylife_Layout adını verelim. Bunun için aşağıdaki dosyaları oluşturmanız gerekir: app/etc/modules/Easylife_Layout.xml- bildirim dosyası

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

app/code/local/Easylife/Layout/etc/config.xml - yapılandırma dosyası

<?xml version="1.0"?> 
<config>
    <modules>
        <Easylife_Layout>
            <version>0.0.1</version>
        </Easylife_Layout>
    </modules>
    <global>
        <page>
            <layouts> 
                <lookbook module="page" translate="label">
                    <label>Lookbook</label>
                    <template>page/1column-lookbook.phtml</template>
                    <layout_handle>lookbook</layout_handle>
                </lookbook> 
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <easylife_layout>
                    <file>easylife_layout.xml</file>
                </easylife_layout>
            </updates>
        </layout>
    </frontend>
</config>

app/design/frontend/{interface}/{theme}/layout/easylife_layout.xml - düzen dosyası

<?xml version="1.0"?> 
<layout>
    <lookbook translate="label">
        <label>Lookbook</label>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </lookbook> 
</layout>

Sonuncusu, düzen dosyalarında özel mizanpajınıza başvurabilmeniz için gereklidir. Gibi bir şey:

<update hande="lookbook" />

Önbelleği temizle ve ... hepsi bu. Le tme senin için işe yarayıp yaramadığını biliyor.


giriş ve çıkış, bundan sonra benim için hile yaptı
cyptus

6

İki olasılık vardır:

  1. Kategorinize özel bir düzen eklersiniz ve bunu yaparsınız:

    <layout>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
        </reference>
    </layout>
  2. Bir sayfa düzeni olarak gerçekleştirmesi ve eklemek config.xmliçinde global/page/layouts/ama ben tam bunu nasıl, bilmiyorum.

Sadece bir kez ihtiyacınız varsa, ilk çözümle kalabilirsiniz. Ama dikkat et. Orada <action method="setIsHandle"><applied>1</applied></action>içinde page.xmlBazen bu ayar şablonunun değişikliğini engeller.

İlk çözümü yapmak için: Kategorinizi seçin Custom Design, <layout />düğümün içindeki her şeyi Custom Layout Updatemetin alanına yerleştirin, örneğin:

<reference name="root">
    <action method="setBackgroundGraphic">
        <background>two-pieces</background>
    </action>
    <action method="setTemplate">
    <template>page/2columns-right-highStep.phtml</template>
    </action>
    <action method="setIsHandle">
        <applied>1</applied>
    </action>
</reference>

Birincisi için düzen referansını nereye yapıştırmam gerekir? Layout.xml çok benzer bir kod denedim ama ne düzey yerleştirmek için hiçbir fikrim yoktu, ben <catalog_category_view> kullanarak varsayılan olarak tüm kategori sayfaları için referanslar var, bu yüzden başka bir seçenek eklemek için benzer bir şeye ihtiyacım var
Chris Morris

cevabı düzenledi
Fabian Blechschmidt
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.