Jacques Bodin-Hullin Développeur d'applications Web

La perfection est atteinte non quand il ne reste rien à ajouter, mais quand il ne reste rien à enlever.

Antoine de Saint Exupéry

Changeons notre homepage !

J'en ai parlé récemment avec un collègue chez Internim :

« Quelle est la meilleure manière de personnaliser la homepage d'un site sous Magento ? »

Je n'ai sans doute pas la meilleure... mais en tout cas elle est simple et pratique :)


Pour commencer il faut savoir que la Homepage est une page CMS et qu'à ce titre elle est administrable dans l'admin de Magento.

La Homepage dans les pages CMS

L'idée c'est que nous allons simplement changer le layout de notre page. Par défaut la home est sur 2 columns with right bar. Faisons en sorte que son layout soit homepage.

Notre module Jbh_Homepage va juste ajouter un layout pour toutes les pages CMS. Il nous suffira de changer celui de la home !

Pour ajouter un layout au niveau des pages CMS il suffit d'ajouter un peu de XML à notre configuration.

On commence par déclarer notre module qui dépendra de Mage_Cms et Mage_Page :

Ensuite on passe au config.xml dans lequel on indique notre nouveau layout dans le path global/page/layout. A noter qu'on peut aussi utiliser le path global/cms/layouts.

J'en profite pour créer un layout update, histoire d'avoir un handle bien à nous : page_homepage.

Quel intérêt ? On a déjà le handle cms_index_index pour la homepage non ?

Exact ! Sauf que le handle cms_index_index s'appliquera dans tous les cas à votre homepage, quelque soit son layout. Notre handle à nous ne sera appliqué que si c'est notre layout qui est utilisé, vous voyez la nuance ? ;)

Ensuite il ne nous reste plus quand chose... Créons notre page phtml : (J'ai copié le 1column.phtml)

Et on termine par le fichier de mise à jour des layouts :

En soi rien de bien compliqué :

  1. On ajoute un layout possible pour nos pages CMS
  2. On ajoute un handle pour pouvoir faire appel rapidement à notre homepage dans nos layouts
  3. On met tout notre HTML dans notre template page/homepage.phtml

Have fun !

Le module est dispo sur github. Vous pouvez aussi le télécharger en tar.gz directement.


Commentaires

blog comments powered by Disqus

Quelques infos

Contact

Mon QRcode

le QRcode