L'aggiunta di layout personalizzati per CMS e l'uso Categoria con problemi di modulo personalizzato
-
16-10-2019 - |
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: (
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à:
-
È 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>
-
si implementa come un layout di pagina e inserirlo al
config.xml
inglobal/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>