Comment ajouter un bloc sur la page d'accueil au-dessus du contenu, sous la navigation sur la page d'accueil uniquement?


22

Comment puis-je ajouter un bloc à la page d'accueil uniquement au-dessus de la section de contenu, mais en dessous de la navigation pour l'étaler sur la page tout en utilisant le modèle à deux colonnes?

J'utilise la version 1.9 de Magento.

Voir l'image:

Entrez la description de l'image ici

Réponses:


23

Vous n'avez pas du tout besoin de créer un module. Vous pouvez utiliser des widgets dans Magento 1.4+:

Cliquez sur CMS> Widgets:

entrez la description de l'image ici

Cliquez sur "Ajouter une nouvelle instance de widget":

entrez la description de l'image ici

Sélectionnez "CMS Static Block" et le nom de votre thème:

entrez la description de l'image ici

Ensuite, sous «propriétés frontales», donnez-lui un titre et cliquez sur «Ajouter la mise à jour de la mise en page», et configurez-le comme indiqué pour qu'il s'affiche uniquement sur la page d'accueil dans le bloc de contenu principal:

entrez la description de l'image ici

Sous Options du widget, sélectionnez le bloc statique que vous souhaitez afficher:

entrez la description de l'image ici


C'est la meilleure des trois solutions ...
user1704524

Existe-t-il un moyen de le faire dans Magento 2?
kia4567

11

Créer local.xmlsousapp/design/frontend/your package/your template/layout/

Et mettez le code

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

C'est une bonne méthode ...
user1704524

Merci pour cela! Mais j'essaie de le faire avant le fil d'Ariane. J'ai essayé avant = "breadcurmbs" mais il dit que le XML n'est pas valide. Comment puis-je faire fonctionner cela?
Alyssa Reyes

@AlyssaReyes Si vous avez utilisé 'breadcurmbs', vous pouvez essayer 'breadcrumbs': p
Maarten Wolfsen

6

Essayez ça, ça marche toujours

<reference name="after_body_start">
    <block type="core/template"  name="block_name" template="template/template.phtml" />
</reference>

4

Voici un moyen très rapide de le faire ...

Créez un module:

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

Ajoutez ensuite ce qui suit à votre fichier de configuration

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

Et dans votre dossier de thème app / design / frontend / YOURTHEME / default / template / page / 1column-home.phtml

Ajoute ça:

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

Ensuite, dans votre administrateur Magento, créez un bloc statique appelé 'custom_block' ou autre chose et ajoutez-le à 1column-home.phtml après l'en-tête:

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

Assurez-vous d'ajouter du contenu au bloc statique et sélectionnez votre nouvelle disposition de page d'accueil dans l'onglet de conception des pages CMS ...


0

Peut essayer la mise à jour de la mise en page

code suivant comme celui-ci

<reference name="top.container">
    <block type="core/template"
                   name="linkcoupon_block"
                   as="linkcoupon_block"
                   template="linkcoupon/static.phtml"
                   output="toHtml"
            />
</reference>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.