Structure des dossiers et d'un thème Magento

Dossiers utiles à nos développements

Dossiers importants :

  • /app - tous les fichiers concernant directement l'application se trouvent dans ce dossier (MVC(L))
  • /media - tous les fichiers statiques administrables (Images produits / catégories / WYSIWYG / cache images)

    • Ce dossier peut être supprimé, il sera recrée automatiquement sur le dossier parent possède les bons droits. Vous perdrez cependant vos images catalogues.
  • /shell - Classes PHP exploitées par des scripts shell. Nous utilisons parfois ce dossier pour des scripts en one-shot qui ne nécessitent pas forcément un model spécifique.
  • /skin - tous les fichiers statiques relatifs au thème (Images / CSS / JS)
  • /var - tous les fichiers temporaires (cache / sessions / reports / logs / backup / import-export)
    • Ce dossier peut être supprimé. Vous déconnecterez tous les utilisateurs en front-office si - par défaut - vous avez vos sessions stockés en fichiers.

Dossiers système

Dossiers à ne jamais toucher :

  • /downloader - Magento Connect & Install
  • /errors - Personnaliser les erreurs serveurs (500, etc.).
  • /includes - dossier de stockage du noyau compilé (Magento Compiler)
  • /js - Librairies JS
  • /lib - Librairies PHP (Zend Framework / Varien Lib)
  • /pkginfo - Mises à jour

Détails des fichiers importants

  • index.php - script démarrage (à ne pas modifier)
  • cron.php - exécution des tâches périodiques (à ne pas modifier)
  • app/etc/local.xml - fichier de connexion BDD (à ne pas commiter)
  • app/etc/modules/* - déclaration des modules
  • app/code/* - modules personnels
    • community  : Les modules communautaires voués à être diffuser sur Internet doivent être positionnés dans ce dossier
    • core  : Les modules du Core de Magento (à ne surtout pas modifier)
    • local : Les modules du projet en cours, votre dossier !
  • app/locale/* - fichiers de traductions (et template d'emails) des modules
  • app/design/frontend/* - fichiers de templates et de layout pour les thèmes de frontend
  • skin/frontend/* - fichiers statiques pour les thèmes de frontend

Ordre de chargement des modules

Les modules présents dans app/code/*/ sont chargés dans l'ordre suivant :

  1. Les modules présents dans app/etc/modules/Mage_All.xml
  2. Les modules commençant par app/etc/modules/Mage_*.xml
  3. Les autres modules présents dans app/etc/modules

Cet ordre est visible dans la méthode _getDeclaredModuleFiles du fichier Mage_Core_Model_Config

Page de maintenance

Activer la page de maintenance

touch maintenance.flag

Personnaliser la page 503 de maintenance

cp errors/local.xml.sample errors/local.xml
cp errors/default errors/custom
  1. Editer le fichier `errors/local.xml.
  2. Modifier le noeud <skin>default</skin> en <skin>custom</skin>
  3. Editer le theme custom