Domanda

Ho una categoria nel mio negozio che richiede un layout completamente diverso per i layout standard di Magento. Così ho creato una nuova copia del 1column.phtml e ribattezzata e fatto una piccola modifica al test.

Ora il problema è che il layout personalizzato non viene visualizzata. Ho creato un modulo (che sta lavorando come si vede in Admin> Configurazione> Avanzate panoramica).

I miei file e contenuti sono i seguenti:

app / 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>

app / code / local / Test / Pagina / 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>

app / design / frontend / test / default / layout / 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>

Non riesco a vedere tutto quello che ho fatto un casino, è in corso la lettura come un modulo, ma il layout personalizzato non viene mostrato up: (

È stato utile?

Soluzione

Al fine di farlo apparire nel layout discesa è necessario creare un modulo personalizzato (si può anche aggiungere qualcosa in un file core, ma per favore non farlo). Diamo un nome l'estensione Easylife_Layout. Per questo è necessario creare i seguenti file: app/etc/modules/Easylife_Layout.xml - il file di dichiarazione

<?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 - il file di configurazione

<?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 - il file di layout

<?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>

L'ultimo è necessaria nel caso in cui si vuole essere in grado di fare riferimento il layout personalizzato in file di layout. Qualcosa di simile:

<update hande="lookbook" />

Svuota cache e ... il gioco è fatto. Le TME sapere se funziona per voi.

Altri suggerimenti

Ci sono due possibilità:

  1. È possibile aggiungere un layout personalizzato per la categoria e fare questo:

    <layout>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
        </reference>
    </layout>
    
  2. si implementa come un layout di pagina e inserirlo al config.xml in global/page/layouts/, ma non so, come farlo esattamente.

Se avete solo bisogno di una volta, si può stare con la prima soluzione. Ma fa attenzione. Ci sono <action method="setIsHandle"><applied>1</applied></action> nel page.xml A volte questa impostazione impedisce il cambiamento del modello.

Per fare la prima soluzione: Selezionare la categoria, avuto modo di Custom Design e mettere tutto all'interno del nodo <layout /> nella textarea Custom Layout Update, per esempio:.

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top