Ajouter un block et un template sur la home ?


développement web

Nous allons aujourd’hui établir un block sur la home de magento. Imaginons que votre affichage soit intemporelle et surtout global. Comme une landing page en javascript par exemple à l’aide d’une lightbox. (Nous ne verrons pas cette partie lightbox ici).

Comme toujours pour établir ce tutoriel j’ai analysé le code source de magento. Je vous ai préparé un ensemble de code rempli de truc, tata, plop plopiplop j’en passe et des meilleurs! Pourquoi ? Comme toujours, pour vous permettre de réellement faire un lien entre les différents points du code.

Affichage des indications d’emplacement des blocks et templates hints

Tout d’abord affichons les templates hints et les blocks hints sur le frontend. Pour ce faire direction le back office:

System-> configuration -> advanced ->developper ->Puis changer le scope à (main website), et enfin passer dans Debug à yes:

  • Template Path Hints
  • Add Block Names to Hints

Une petite sauvegarde et purge des caches et le tour est joué !

Créons le Module support du block

Nous allons créer un module qui va nous servir à utiliser un block au sens MVC du terme. Pour ce faire, il faut d’abord activer le module:

Dans le fichier à créer: app/etc/modules/Valibus_Plopiplop.xml

<?xml version="1.0" ?>
<config>
<modules>
<Valibus_Plopiplop>
<active>True</active>
<codePool>local</codePool>
</Valibus_Plopiplop>
</modules>
</config>

Créons ensuite le fichier block dans app/code/local/Valibus/Plopiplop/Block/Flip.php Comme vous le voyez on se contente d’étendre mage_core_block_template et de mettre en place une méthode d’affichage dans le cadre de tutoriel.

<?php
class Valibus_Plopiplop_Block_Flip extends Mage_Core_Block_Template {
public function affichageBlockHome(){
return "Le block sur la home s'affiche";
}
}

Plaçons ensuite app/code/local/Valibus/Plopiplop/etc/config.xml pour déclarer notre block et la version du module. Comme vous le constatez nous n’avons pas besoin dans ce cas précis de déclarer de layout propre à ce module.

<config>
<modules>
<Valibus_Plopiplop>
<version>0.0.1</version>
</Valibus_Plopiplop>
</modules>
<global>
<blocks>
<plopiplop>
<class>Valibus_Plopiplop_Block</class>
</plopiplop>
</blocks>
</global>
</config>

Notre module créé, nous n’avons plus qu’à créer son template app/design/frontend/base/default/template/tata/truc.phtml Oui je sais pour l’instant tout ça est un peu décousu mais je vous retranscris ça pèle-mêle aussi … (cité de la peur quand tu nous tiens)

<?php
echo $this->affichageBlockHome();
?>

Modification des layouts et template de base

 C’est en principe ici que tout s’articule pour votre compréhensions. (Ou alors que vous êtes perdu …) Bref comme vous avez pu le remarquer il y a en général selon les pages 2 templates qui selon les cas englobent les autres, j’ai nommé:

  • frontend/base/default/template/page/2columns-right.phtml
  • frontend/base/default/template/page/3columns.phtml

Nous allons donc dans chacun d’entre eux, ajouter une ligne en dessous de l’appel de global notice

<div class="wrapper">
<?php echo $this->getChildHtml('global_notices') ?>
<?php echo $this->getChildHtml('plop') ?>

Et le meilleur pour la fin : éditons le fichier app/design/frontend/base/default/layout/page.xml et après la ligne (environ 67) sur les global_notices, rajoutons ceci qui fait tout s’articuler:

<block type="page/html_notices" name="global_notices" as="global_notices" template="page/html/notices.phtml" />
<block type="plopiplop/flip" name="plop" as="plop" template="tata/truc.phtml" />

La ligne qui fait donc le lien entre le nom de notre block flip l’appel référence plop et le template truc. Elle est pas belle la vie? Allé demain je vous fait la même pour l’affichage sur une page produit en plus propre, parce que là oui, c’est un peu bourrin quand même ! Mais faut pas le dire…Votre rendu devrait donc ressembler à un patchwork multicolor, mais au moins vous arriverez à savoir ce qui est quoi et qui va où !

Christophe Vidal vous répond
Christophe Vidal vous répondAssocié et directeur commercial – sous 48h ouvrées
+300 clients depuis 2017

Votre pré-audit Magento offert

Technique, performance, SEO, Paid : un expert analyse votre site et vous rappelle avec des propositions concrètes.

Gratuit et sans engagement

+234%de CA en 2 ans
+45%de ventes
6langues

Migration Magento 2 pour les marques du Groupe Blanchon, PIM et ERP synchronisés, catalogue servi en 6 langues. Refonte technique, reprise du SEO et accompagnement continu : le site absorbe la saisonnalité sans incident.

62pays
4langues
57partenaires dans le monde

Le projet de refonte de notre site web nécessitait l’accompagnement d’un expert du développement Magento, de l’UX design et de référencement. Nous avons trouvé ces trois caractéristiques.

Annabelle Meli — Responsable marketing digital chez Enlaps.io
102 000pages vues dans les 48h après l’ouverture
31matchs différents

Pour la billetterie de la Coupe du Monde de Rugby 2023, nous avons conçu une plateforme Magento sur-mesure capable de gérer des flux de dizaines de milliers d'utilisateurs en simultané. Nous avons transformé des défis techniques complexes en une solution agile et performante, optimisée dès sa conception par notre expertise SEO.

410-gone, je vous recommanderai sans hésiter pour la proximité, la réactivité, l’enthousiasme et le côté humain sur chaque projet.

Lucas Chevalier — Responsable Digital chez Couleur
502 M€Chiffre d’affaires consolidé
8sites Magento en production
+900salariés

410-Gone, c’est une équipe compétente, qui sait s’adapter aux besoins spécifiques de ses clients et qui apporte des solutions efficaces, notamment en SEO et sur Magento. Leur support nous a permis d’évoluer et d’optimiser nos sites au fil du temps.

Jérémy Diguet-Dickson — Responsable Digital – Thermador Groupe
1 / 4