View
2.256
Download
4
Category
Preview:
DESCRIPTION
En moins d'une vingtaine de slides, petit tour rapide des principaux composants d'un module Prestashop. Présenté le 24 novembre 2011 au Barcamp Prestashop (Espace Tapis Rouge 75010 PARIS) Cette mini-conférence sera également présentée lors du prochain apéro Prestashop Lyon mi-décembre (lieu non encore déterminé).
Citation preview
Un module Prestashop, comment ca marche ?
Prestashop ?‡ Solution Open-Source
‡ PHP5/MySQL5
‡ Système de modules (PHP/Smarty)
Système de hooks‡ Points d’ancrage
‡ 85 hooks dans Prestashop 1.4.5
‡ On peut en rajouter grâce à la surcharge !
Structure des fichiers‡ Fichiers PHP
‡ Templates Smarty (.tpl)
‡ Feuilles de style, Javascript et
images
Surcharge
« On peut tout surcharger…
… sauf les fichiers
PHP ! »
Structure du code‡ Classe PHP
‡ Dérive de la classe Module
‡ Nom unique
Déclaration variables‡ Nécessaire si on veut les utiliser
plus tard
‡ Pré-remplies (ou pas) :public $variable_vide;public $variable_remplie = ‘valeur’;
Squelette d’un module‡ Des fonctions obligatoires :
O construct()O install()
‡ Des fonctions facultatives :O uninstall()O getContent()O displayForm()O hookX()
construct()‡ Utilisée à chaque exécution du
module
‡ Définit le module (nom, description,
etc)
‡ Remplit les variables du module et
effectue les opérations nécessaires
install()‡ Exécutée une seule fois
‡ Relie le module aux hooks
‡ Effectue toute opération nécessaire
(création de table, copie de fichiers,
etc.)
uninstall()‡ Facultative
‡ Exécutée au clic sur « Désinstaller »
‡ Effectue toute opération nécessaire
(suppression de table ou de fichiers,
etc.)
Hooks‡ Permettent de relier une action au
déclenchement d’un hook
‡ Peuvent s’appeler entre eux : A => B et
C => B
‡ Possible de les gérer via le B.O.
Fonctions communes‡ Permettent d’appeler une même
fonction depuis plusieurs hooks
‡ Allègent le code et le rendent +
lisible
Appels des templates‡ On indique le fichier à utiliser :
‡ Variables Smarty pré-remplies via
PHP…
…et récupérables dans les .tpl :
return $this->display(__FILE__, ‘module.tpl');
$smarty->assign(‘variable', $this->variable);
<p> {$variable} </p>
displayForm()‡ Utilisée pour le formulaire dans le
B.O.
‡ Pas d’affichage direct mais utilisation
de $output
‡ Pas de traitement des résultats
getContent()‡ Utilisée pour le traitement du formulaire
du B.O.
‡ Tout type d’opération (base de données,
etc)
‡ Affichage du résultat du traitement
Traduction‡ Pas de chaîne « en dur »
‡ Utilisation de $this->l(‘string’)
‡ Traduction via l’onglet dédié du B.O.
C’est qui, le barbu ?‡ Samy Rabih
Développeur PHP/JS
‡ O2Sources (Lyon)
‡ @fetard
Recommended