Como adiciono um bloco na página inicial acima do conteúdo, abaixo da navegação apenas na página inicial?

22

Como adiciono um bloco à página inicial apenas acima da seção de conteúdo, mas abaixo da navegação para se espalhar pela página enquanto ainda usa o modelo de duas colunas?

Estou usando o Magento versão 1.9.

Veja a imagem:

Digite a descrição da imagem aqui

user9718
fonte

Respostas:

23

Você não precisa criar um módulo. Você pode usar os Widgets no Magento 1.4+:

Clique em CMS> Widgets:

insira a descrição da imagem aqui

Clique em "Adicionar uma nova instância de widget":

insira a descrição da imagem aqui

Selecione "Bloco estático do CMS" e o nome do seu tema:

insira a descrição da imagem aqui

Em "propriedades do front-end", dê um título a ele e clique em "Adicionar atualização de layout" e configure-o como mostrado para exibir somente na página inicial no bloco de conteúdo principal:

insira a descrição da imagem aqui

Em Opções do widget, selecione o bloco estático que você deseja exibir:

insira a descrição da imagem aqui

philwinkle
fonte
Esta é a melhor de todas as três soluções ...
user1704524
Existe uma maneira de fazer isso no Magento 2?
kia4567
11

Criar local.xmlemapp/design/frontend/your package/your template/layout/

E coloque o 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
fonte
Esse é um bom método ... #
45670 Jun24
Obrigado por isso! Mas estou tentando fazer isso antes da farinha de rosca. Eu tentei antes = "breadcurmbs", mas ele diz que o XML é inválido. Como posso fazer isso funcionar?
Alyssa Reyes
@AlyssaReyes Se você usou 'breadcurmbs', pode tentar 'breadcrumbs': p
Maarten Wolfsen
6

Tente isso, sempre funciona

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

Aqui está uma maneira muito rápida de fazer isso ...

Crie um módulo:

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

Em seguida, adicione o seguinte ao seu arquivo de configuração

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

E na sua pasta de temas app / design / frontend / YOURTHEME / default / template / page / 1column-home.phtml

Adicione isso:

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

Então, no seu administrador do Magento, crie um bloco estático chamado 'custom_block' ou qualquer outra coisa e adicione-o ao 1column-home.phtml após o cabeçalho:

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

Adicione conteúdo ao bloco estático e selecione o novo layout da página inicial na guia Design nas páginas do CMS ...

user1704524
fonte
0

Pode tentar a atualização do layout

código a seguir como este

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