Agregar diseños personalizados para CMS y uso de categoría con problemas de módulo personalizado

14

Tengo una categoría en mi tienda que requiere un diseño totalmente diferente a los diseños estándar de Magento. Así que creé una nueva copia de 1column.phtml y le cambié el nombre e hice un pequeño cambio para probar.

Ahora el problema es que el diseño personalizado no se muestra. Creé un módulo (que funciona como se ve en Admin> Configuración> Descripción general avanzada).

Mis archivos y contenidos son los siguientes:

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

No puedo ver nada que haya arruinado, se está leyendo como un módulo pero el diseño personalizado no se muestra :(

Chris Morris
fuente

Respuestas:

21

Para que aparezca en el menú desplegable de diseño, debe crear un módulo personalizado (también puede agregar algo en un archivo central, pero no lo haga). Vamos a nombrar la extensión Easylife_Layout. Para esto, debe crear los siguientes archivos: app/etc/modules/Easylife_Layout.xml- el archivo de declaración

<?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 - el archivo de configuración

<?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 - el archivo de diseño

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

El último es necesario en caso de que desee poder hacer referencia a su diseño personalizado en los archivos de diseño. Algo como:

<update hande="lookbook" />

Limpia el caché y ... eso es todo. Déjame saber si te funciona.

Marius
fuente
iniciar y cerrar sesión me
ayudó
6

Hay dos posibilidades:

  1. Agregue un diseño personalizado a su categoría y haga esto:

    <layout>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
        </reference>
    </layout>
  2. Se implementa como un diseño de página y añadirlo a la config.xmlde global/page/layouts/, pero no sé, cómo hacerlo exactamente.

Si solo lo necesita una vez, puede quedarse con la primera solución. Pero ten cuidado. En <action method="setIsHandle"><applied>1</applied></action>la page.xmlconfiguración A veces, esta opción impide el cambio de la plantilla.

Para hacer la primera solución: Seleccione su categoría, ingrese Custom Designy coloque todo dentro del <layout />nodo en el área de Custom Layout Updatetexto, por ejemplo:

<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>
Fabian Blechschmidt
fuente
¿Dónde tendría que pegar la referencia de diseño para el primero? Intenté un código muy similar en layout.xml pero no tenía idea de qué nivel colocarlo, tengo referencias allí para todas las páginas de categoría por defecto usando <catalog_category_view>, así que asumí que necesito algo similar para agregar otra opción
Chris Morris
editó la respuesta
Fabian Blechschmidt