"Un module Prestashop, comment ca marche?"

Post on 19-Jan-2015

2256 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

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é).

Transcript

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

top related