Contenu

Fondamentaux de la création de thème

Concepts

Le système de thème de PrestaShop est basé sur un moteur de modèle/template, appelé Smarty (http://www.smarty.net/), qui permet aux web-designers et développeurs de créer facilement leur propre thème, avec peu de connaissances techniques.

Tous les designers et développeurs web devraient utiliser les outils suivants :

Ils offrent de nombreux outils, parmi lesquels un outil de parcours du DOM, un éditeur CSS en direct, un inspecteur du réseau, etc., et apportent une aide essentielle lorsqu'il s'agit de déboguer du code HTML, CSS, JavaScript, et même les requêtes Ajax.

 

Architecture technique de PrestaShop

PrestaShop est basé sur une architecture 3-tiers :

Pour plus d'information, lire la page Wikipédia http://fr.wikipedia.org/wiki/Architecture_trois_tiers.

Il s'agit du même principe que pour l'architecture MVC (Modèle-Vue-Contrôleur), en plus simple et plus accessible.
Pour plus d'informations sur le MVC, lisez la page Wikipédia http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur.

Notre équipe de développeur à choisi de ne pas utiliser de framework PHP, tel que Zend Framework, Symfony ou CakePHP, afin d'obtenir une meilleure lisibilité du code, et donc de permettre des modifications plus rapides.

Cela permet également d'obtenir de meilleures performances, étant donné que le logiciel n'est fait que de lignes de code qu'il utilise effectivement, et qu'il ne contient pas un lit de bibliothèques génériques ajoutées.

Une architecture 3-tiers a de nombreux avantages :

Modèle

Un modèle représente le comportement de l'application : traitement des données, interaction avec la base de données, etc.

Il décrit ou contient les données qui ont été traitées par l'application. Il gère ces données, et garantis leur intégrité.

Vue

Une vue est l'interface avec laquelle l'utilisateur interagit.

Son premier rôle est d'afficher les données qui ont été fournies par le modèle. Son second rôle est de gérer toutes les actions en provenance de l'utilisateur (clic de la souris, sélection d'un élément, boutons, etc.) et d'envoyer ces données au contrôleur.

La vue ne fait aucun traitement : elle ne fait qu'afficher le résultat d'un traitement réalisé par le modèle, et interagit avec l'utilisateur.

Contrôleur

Le contrôleur gère la synchronisation des évènements entre le modèle et la vue, et met les deux à jour en fonction des besoins. Il reçoit tous les évènements utilisateur, et déclenche les actions à réaliser.

Si une action a besoin de modifier des données, le contrôleur "demandera" au modèle de modifier ces données, et en retour le modèle notifiera la vue que les données ont été changées, afin que la vue puisse se mettre à jour.

Concepts et informations techniques

Bonnes pratiques

Voici une liste non exhaustive de bonnes pratiques à respecter :

  1. Ne mélangez jamais du code XHTML et du code PHP ; utiliser les balises Smarty pour gérer votre contenu dynamique.
  2. Ne mélangez jamais du code XHTML et du code CSS, placez le code dans un fichier .css à part.
  3. Validez toujours votre code XHTML et votre code CSS grâce aux validateurs du W3C : http://validator.w3.org/ pour le code HTML et XHTML, http://jigsaw.w3.org/css-validator/ pour le code CSS.
  4. N'effectuez jamais de requête SQL dans un contrôleur PHP (fichiers .php à la racine de PrestaShop), privilégiez l'utilisation des méthodes existantes dans les classes PHP et/ou créez de nouvelles méthodes dans ces classes.
  5. Vérifiez toujours si une méthode n'existe pas déjà dans les classes disponibles.
  6. Ne modifiez pas les fichiers du cœur de PrestaShop ; développez au maximum sous forme de modules afin de faciliter les mises à jour.
  7. Respectez les normes de codes pour un code lisible et clair, facilement maintenable.
  8. Commentez votre code, en anglais.
  9. Lorsque vous effectuez des corrections, mettez la boutique en maintenance via le back-office de PrestaShop.
  10. Utilisez les navigateurs Firefox, Google Chromen IE9 ou Opera, et incitez les gens autour de vous à en faire autant.
  11. Autant que possible, utilisez des CSS sprites (lire http://www.alsacreations.com/tuto/lire/1068-sprites-css-background-position.html ).

Comment fonctionne un thème PrestaShop

Un thème PrestaShop est un ensemble de fichiers que vous pouvez modifier afin de personnaliser la mise en page de votre boutique.

Voici quelques points importants :

Dossiers propres aux thèmes

En tant que développeur de thèmes, il y a  dossiers auxquels vous devez faire attention :

Aperçu du dossier d'un thème

Voici un aperçu de l'arborescence de fichiers d'un thème PrestaShop (ici, le thème par défaut) :

Les dossiers /css, /img et /js sont facultatifs, un thème peut parfaitement fonctionner sans, il vous revient de les créer selon vos besoins.