Hiérarchie des interfaces/thèmes et fallback

Structure d'un thème

Décomposition du thème de base

Le thème de base utilisé par Magento est le thème base/default.

Ce thème est décomposé en 2 dossiers :

  • app/design/frontend/base/default/
  • skin/frontend/base/default/

Interface / Thème & Layout / Template

  • base représente l'interface
  • default représente le thème

Une interface contient plusieurs thèmes : celui par défaut, Noël, les soldes etc.

Chaque thème contient un dossier layout et un dossier template contenant toute la structure de notre thème.

Fallback

Dérive de notre thème

À la création d'un thème, nous ne partons en général pas d'une page blanche, mais du thème default/default pour les versions de Magento inférieures à la 1.9 et du thème rwd/default pour les versions 1.9+.

Cependant, il n'est pas conseillé de modifier le thème default/default. La bonne pratique est de créer son propre thème.

Il n'est pas nécessaire de copier/coller tous les fichiers du thème default/default dans notre theme, grâce au système de fallback de Magento.

Le fallback de Magento en résumé

Si un fichier n'est pas présent dans notre thème, Magento ira le chercher ailleurs dans :

  1. notre_interface/notre_theme
  2. notre_interface/default
  3. interface_parent/theme_parent (sur Magento 1.9+ seulement)
  4. base/default

Ce comportement permet de modifier uniquement les fichiers nécessaires.

Modification des thèmes de base de Magento

Il est interdit de modifier les fichiers de base/default ! Si vous mettez à jour Magento, les fichiers seront écrasés et vous perdrez toutes vos modifications. De plus, vous ne saurez pas quels fichiers ont été modifiés.

TP : Modifier le header

Plan du TP

Objectif : Afficher un texte dans le header

  1. Création d'un thème :
    1. Création des dossiers app/design/frontend/formation/default et skin/frontend/formation/default
    2. Modifier dans l'administration notre thème : Système > Configuration > Design
  2. Dans un premier temps, activer le debuggeur pour savoir où se situe le fichier du header
  3. Copier/coller ce fichier dans notre thème et le modifier. Notre thème pourtant presque vide affiche l'intégralité du site.

Ajout de fichiers dans base/default

Pourquoi est-ce une bonne pratique de déposer les modules externes (community + local) dans base/default ?

Les thèmes personnalisés depuis le back-office

Il est vivement déconseillé de changer le thème depuis le back-office d'une catégorie ou d'une page produit. En effet, ceci remplace le thème courant par le thème voulu. Ainsi si nous avons plusieurs niveaux :
  1. base/default
  2. interface/default
  3. interface/theme
Notre thème personnalisé remplacera le point 3. au lieu de se positionner en 4.