¿Cómo agrego un bloque en la página de inicio sobre el contenido, debajo de la navegación en la página de inicio solamente?

22

¿Cómo agrego un bloque a la página de inicio solo arriba de la sección de contenido, pero debajo de la navegación para expandirme por la página mientras sigo usando la plantilla de dos columnas?

Estoy usando Magento versión 1.9.

Ver imagen:

Ingrese la descripción de la imagen aquí

usuario9718
fuente

Respuestas:

23

No necesita crear un módulo en absoluto. Puedes usar Widgets en Magento 1.4+:

Haga clic en CMS> Widgets:

ingrese la descripción de la imagen aquí

Haga clic en "Agregar una nueva instancia de widget":

ingrese la descripción de la imagen aquí

Seleccione "Bloque estático de CMS" y el nombre de su tema:

ingrese la descripción de la imagen aquí

Luego, bajo 'propiedades frontend', asígnele un título y haga clic en "Agregar actualización de diseño", y configúrelo como se muestra para que se muestre solo en la página de inicio en el bloque de contenido principal:

ingrese la descripción de la imagen aquí

En Opciones de widget, seleccione el bloque estático que desea mostrar:

ingrese la descripción de la imagen aquí

philwinkle
fuente
Esta es la mejor de las tres soluciones ...
user1704524
¿Hay alguna manera de hacer esto en Magento 2?
kia4567
11

Crear local.xmlbajoapp/design/frontend/your package/your template/layout/

Y pon el código

<?xml version="1.0"?>
<layout version="0.1.0">
    <cms_index_index>
        <reference name="root">
            <block type="core/template"  name="my.vblock" before="content" template="page/home/myblock.phtml" after="breadcrumbs" />
        </reference>
    </cms_index_index>
 </layout>
Amit Bera
fuente
Ese es un buen método ...
user1704524
¡Gracias por esto! Pero estoy tratando de hacerlo antes de las migas de pan. Intenté antes = "breadcurmbs" pero dice que el XML no es válido. ¿Cómo puedo hacer que esto funcione?
Alyssa Reyes
@AlyssaReyes Si usó 'pan rallado', podría probar 'pan rallado': p
Maarten Wolfsen
6

Prueba esto siempre funciona

<reference name="after_body_start">
    <block type="core/template"  name="block_name" template="template/template.phtml" />
</reference>
Vaibhav Ahalpara
fuente
4

Aquí hay una forma muy rápida de hacerlo ...

Crea un módulo:

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

Luego agregue lo siguiente a su archivo de configuración

<?xml version="1.0"?>
<config>
    <modules>
        <Namespace_PageLayout>
            <version>0.1.0</version>
        </Namespace_PageLayout>
    </modules>
    <global>
        <page>
            <layouts>
                <homepage_layout translate="label">
                    <label>Homepage Layout</label>
                    <template>page/1column-home.phtml</template>
                </homepage_layout>
            </layouts>
        </page>
    </global>
</config>

Y en su carpeta de temas app / design / frontend / YOURTHEME / default / template / page / 1column-home.phtml

Agrega esto:

<head>
    <?php echo $this->getChildHtml('head') ?>
</head>
<body<?php echo $this->getBodyClass()?' class="'.$this->getBodyClass().'"':'' ?>>
<?php echo $this->getChildHtml('after_body_start') ?>
<div class="wrapper">
    <?php echo $this->getChildHtml('global_notices') ?>
    <div class="page">
        <?php echo $this->getChildHtml('header') ?>
**<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('custom_block')->toHtml(); ?>** 
        <div class="main-container col1-layout cms-home">
            <div class="main">
                <?php echo $this->getChildHtml('breadcrumbs') ?>
                <div class="col-main">
                    <?php echo $this->getChildHtml('global_messages') ?>
                    <?php echo $this->getChildHtml('content') ?>
                </div>
            </div>
        </div>
        <?php echo $this->getChildHtml('footer_before') ?>
        <?php echo $this->getChildHtml('footer') ?>
        <?php echo $this->getChildHtml('global_cookie_notice') ?>
        <?php echo $this->getChildHtml('before_body_end') ?>
    </div>
</div>
<?php echo $this->getAbsoluteFooter() ?>
</body>
</html>

Luego, en su administrador de Magento, cree un bloque estático llamado 'custom_block' o lo que sea y agréguelo a 1column-home.phtml después del encabezado:

<?php echo $this->getChildHtml('header') ?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('custom_block')->toHtml(); ?>

Asegúrese de agregar algo de contenido al bloque estático y seleccione su nuevo diseño de página de inicio desde la pestaña de diseño en las páginas de CMS ...

usuario1704524
fuente
0

Puede intentar actualizar el diseño

siguiente código como este

<reference name="top.container">
    <block type="core/template"
                   name="linkcoupon_block"
                   as="linkcoupon_block"
                   template="linkcoupon/static.phtml"
                   output="toHtml"
            />
</reference>
Alex
fuente