SlideShare une entreprise Scribd logo
1  sur  18
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 :
   return $this->display(__FILE__, ‘module.tpl');

‡ Variables Smarty pré-remplies via PHP<
   $smarty->assign(‘variable', $this->variable);

               <et récupérables dans les .tpl :
                <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

Contenu connexe

Tendances

Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPjulien pauli
 
Install oracle 11g sous RedHat
Install oracle 11g sous RedHatInstall oracle 11g sous RedHat
Install oracle 11g sous RedHatTaoufik AIT HSAIN
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapBassem ABCHA
 
Lightning talk Mouf au PHPForum (Paris)
Lightning talk Mouf au PHPForum (Paris)Lightning talk Mouf au PHPForum (Paris)
Lightning talk Mouf au PHPForum (Paris)David Négrier
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentationjulien pauli
 
PHPTour 2011 - PHP5.4
PHPTour 2011 - PHP5.4PHPTour 2011 - PHP5.4
PHPTour 2011 - PHP5.4julien pauli
 
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...Patrick Guimonet
 
PL/Sql et Sécurité des bases de données
PL/Sql et Sécurité des bases de donnéesPL/Sql et Sécurité des bases de données
PL/Sql et Sécurité des bases de donnéessmiste
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1Amir Souissi
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3Amir Souissi
 
AZprocede: interface simulateur
AZprocede: interface simulateurAZprocede: interface simulateur
AZprocede: interface simulateurNicolas JOUVE
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2Amir Souissi
 
PHP & MYSQL #5 : fonctions
PHP & MYSQL #5 :  fonctionsPHP & MYSQL #5 :  fonctions
PHP & MYSQL #5 : fonctionsJean Michel
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptMicrosoft
 

Tendances (20)

Initiation au php
Initiation au phpInitiation au php
Initiation au php
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 
Install oracle 11g sous RedHat
Install oracle 11g sous RedHatInstall oracle 11g sous RedHat
Install oracle 11g sous RedHat
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 
Lightning talk Mouf au PHPForum (Paris)
Lightning talk Mouf au PHPForum (Paris)Lightning talk Mouf au PHPForum (Paris)
Lightning talk Mouf au PHPForum (Paris)
 
ZendFramework2 - Présentation
ZendFramework2 - PrésentationZendFramework2 - Présentation
ZendFramework2 - Présentation
 
My sql console
My sql consoleMy sql console
My sql console
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Hibernate jpa
Hibernate jpaHibernate jpa
Hibernate jpa
 
PHPTour 2011 - PHP5.4
PHPTour 2011 - PHP5.4PHPTour 2011 - PHP5.4
PHPTour 2011 - PHP5.4
 
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
Réduisez vos Coûts d'Administration et les Risques d'erreurs avec Windows Pow...
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
PL/Sql et Sécurité des bases de données
PL/Sql et Sécurité des bases de donnéesPL/Sql et Sécurité des bases de données
PL/Sql et Sécurité des bases de données
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1
 
Cours javascript v1
Cours javascript v1Cours javascript v1
Cours javascript v1
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
 
AZprocede: interface simulateur
AZprocede: interface simulateurAZprocede: interface simulateur
AZprocede: interface simulateur
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
PHP & MYSQL #5 : fonctions
PHP & MYSQL #5 :  fonctionsPHP & MYSQL #5 :  fonctions
PHP & MYSQL #5 : fonctions
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 

En vedette

Installation & Configuration - PrestaShop
Installation & Configuration - PrestaShopInstallation & Configuration - PrestaShop
Installation & Configuration - PrestaShopPrestaShop
 
PrestaShop - 2013, l'année du come-back // Présentation v1.6
PrestaShop - 2013, l'année du come-back // Présentation v1.6PrestaShop - 2013, l'année du come-back // Présentation v1.6
PrestaShop - 2013, l'année du come-back // Présentation v1.6PrestaShop
 
New Microsoft Office PowerPoint Presentation
New Microsoft Office PowerPoint PresentationNew Microsoft Office PowerPoint Presentation
New Microsoft Office PowerPoint Presentationroma jain
 
ITIS Commerce & CyberCité - Atelier eCommerce PrestaShop & Référencement
ITIS Commerce & CyberCité - Atelier eCommerce PrestaShop & Référencement ITIS Commerce & CyberCité - Atelier eCommerce PrestaShop & Référencement
ITIS Commerce & CyberCité - Atelier eCommerce PrestaShop & Référencement Paul Guillemin
 
Bc3 atelier new_quest
Bc3 atelier new_questBc3 atelier new_quest
Bc3 atelier new_questPrestaShop
 
Barcamp 3 PrestaShop - Atelier PrestaShop / eBay
Barcamp 3 PrestaShop - Atelier PrestaShop / eBayBarcamp 3 PrestaShop - Atelier PrestaShop / eBay
Barcamp 3 PrestaShop - Atelier PrestaShop / eBayPrestaShop
 
Barcamp 3 PrestaShop - Ouverture
Barcamp 3 PrestaShop - OuvertureBarcamp 3 PrestaShop - Ouverture
Barcamp 3 PrestaShop - OuverturePrestaShop
 
Barcamp 3 PrestaShop - Découvrez le webservice et la version mobile de Presta...
Barcamp 3 PrestaShop - Découvrez le webservice et la version mobile de Presta...Barcamp 3 PrestaShop - Découvrez le webservice et la version mobile de Presta...
Barcamp 3 PrestaShop - Découvrez le webservice et la version mobile de Presta...PrestaShop
 
ITIS Commerce - Comment bien débuter son e-commerce avec PrestaShop
ITIS Commerce - Comment bien débuter son e-commerce avec PrestaShop ITIS Commerce - Comment bien débuter son e-commerce avec PrestaShop
ITIS Commerce - Comment bien débuter son e-commerce avec PrestaShop Paul Guillemin
 
ValueClick mediaplex 2013 centraliser achat media, adserving, adtracking
ValueClick mediaplex 2013 centraliser achat media, adserving, adtrackingValueClick mediaplex 2013 centraliser achat media, adserving, adtracking
ValueClick mediaplex 2013 centraliser achat media, adserving, adtrackingValueClick France
 
Calligrammes St-Hilaire
Calligrammes St-HilaireCalligrammes St-Hilaire
Calligrammes St-Hilaireemilievennat
 
Brochure détecteurs inductif tout inox (2008)
Brochure détecteurs inductif tout inox (2008)Brochure détecteurs inductif tout inox (2008)
Brochure détecteurs inductif tout inox (2008)ifm electronic gmbh
 
Cours 11 03_26_mak_maclassecopte_free_fr
Cours 11 03_26_mak_maclassecopte_free_frCours 11 03_26_mak_maclassecopte_free_fr
Cours 11 03_26_mak_maclassecopte_free_frHermione220589
 
Magazine surface - De l'énergie verte a revendre - Alain Fortier
Magazine surface  - De l'énergie verte a revendre - Alain FortierMagazine surface  - De l'énergie verte a revendre - Alain Fortier
Magazine surface - De l'énergie verte a revendre - Alain FortierAlain Fortier
 
Designers, prenez le pouvoir !
Designers, prenez le pouvoir !Designers, prenez le pouvoir !
Designers, prenez le pouvoir !David Koss
 
Une portée pour tous les métaux. Détecteurs inductifs
Une portée pour tous les métaux. Détecteurs inductifsUne portée pour tous les métaux. Détecteurs inductifs
Une portée pour tous les métaux. Détecteurs inductifsifm electronic gmbh
 
Cours 11 06_25_mak_maclassecopte_free_fr
Cours 11 06_25_mak_maclassecopte_free_frCours 11 06_25_mak_maclassecopte_free_fr
Cours 11 06_25_mak_maclassecopte_free_frHermione220589
 

En vedette (20)

Installation & Configuration - PrestaShop
Installation & Configuration - PrestaShopInstallation & Configuration - PrestaShop
Installation & Configuration - PrestaShop
 
PrestaShop - 2013, l'année du come-back // Présentation v1.6
PrestaShop - 2013, l'année du come-back // Présentation v1.6PrestaShop - 2013, l'année du come-back // Présentation v1.6
PrestaShop - 2013, l'année du come-back // Présentation v1.6
 
New Microsoft Office PowerPoint Presentation
New Microsoft Office PowerPoint PresentationNew Microsoft Office PowerPoint Presentation
New Microsoft Office PowerPoint Presentation
 
ITIS Commerce & CyberCité - Atelier eCommerce PrestaShop & Référencement
ITIS Commerce & CyberCité - Atelier eCommerce PrestaShop & Référencement ITIS Commerce & CyberCité - Atelier eCommerce PrestaShop & Référencement
ITIS Commerce & CyberCité - Atelier eCommerce PrestaShop & Référencement
 
Bc3 atelier new_quest
Bc3 atelier new_questBc3 atelier new_quest
Bc3 atelier new_quest
 
Barcamp 3 PrestaShop - Atelier PrestaShop / eBay
Barcamp 3 PrestaShop - Atelier PrestaShop / eBayBarcamp 3 PrestaShop - Atelier PrestaShop / eBay
Barcamp 3 PrestaShop - Atelier PrestaShop / eBay
 
Barcamp 3 PrestaShop - Ouverture
Barcamp 3 PrestaShop - OuvertureBarcamp 3 PrestaShop - Ouverture
Barcamp 3 PrestaShop - Ouverture
 
T24 Consultancy
T24 ConsultancyT24 Consultancy
T24 Consultancy
 
Barcamp 3 PrestaShop - Découvrez le webservice et la version mobile de Presta...
Barcamp 3 PrestaShop - Découvrez le webservice et la version mobile de Presta...Barcamp 3 PrestaShop - Découvrez le webservice et la version mobile de Presta...
Barcamp 3 PrestaShop - Découvrez le webservice et la version mobile de Presta...
 
ITIS Commerce - Comment bien débuter son e-commerce avec PrestaShop
ITIS Commerce - Comment bien débuter son e-commerce avec PrestaShop ITIS Commerce - Comment bien débuter son e-commerce avec PrestaShop
ITIS Commerce - Comment bien débuter son e-commerce avec PrestaShop
 
ValueClick mediaplex 2013 centraliser achat media, adserving, adtracking
ValueClick mediaplex 2013 centraliser achat media, adserving, adtrackingValueClick mediaplex 2013 centraliser achat media, adserving, adtracking
ValueClick mediaplex 2013 centraliser achat media, adserving, adtracking
 
Calligrammes St-Hilaire
Calligrammes St-HilaireCalligrammes St-Hilaire
Calligrammes St-Hilaire
 
Brochure détecteurs inductif tout inox (2008)
Brochure détecteurs inductif tout inox (2008)Brochure détecteurs inductif tout inox (2008)
Brochure détecteurs inductif tout inox (2008)
 
Cours 11 03_26_mak_maclassecopte_free_fr
Cours 11 03_26_mak_maclassecopte_free_frCours 11 03_26_mak_maclassecopte_free_fr
Cours 11 03_26_mak_maclassecopte_free_fr
 
Magazine surface - De l'énergie verte a revendre - Alain Fortier
Magazine surface  - De l'énergie verte a revendre - Alain FortierMagazine surface  - De l'énergie verte a revendre - Alain Fortier
Magazine surface - De l'énergie verte a revendre - Alain Fortier
 
Content Style Guide France
Content Style Guide FranceContent Style Guide France
Content Style Guide France
 
Designers, prenez le pouvoir !
Designers, prenez le pouvoir !Designers, prenez le pouvoir !
Designers, prenez le pouvoir !
 
Une portée pour tous les métaux. Détecteurs inductifs
Une portée pour tous les métaux. Détecteurs inductifsUne portée pour tous les métaux. Détecteurs inductifs
Une portée pour tous les métaux. Détecteurs inductifs
 
ATD 28
ATD 28ATD 28
ATD 28
 
Cours 11 06_25_mak_maclassecopte_free_fr
Cours 11 06_25_mak_maclassecopte_free_frCours 11 06_25_mak_maclassecopte_free_fr
Cours 11 06_25_mak_maclassecopte_free_fr
 

Similaire à "Un module Prestashop, comment ca marche?"

Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Aurelien Navarre
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieLoic Yon
 
Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8OSInet
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Jean-Michel Doudoux
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyHugo Hamon
 
Java 7 - Fork/Join
Java 7 - Fork/JoinJava 7 - Fork/Join
Java 7 - Fork/JoinZenika
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hoodsvuillet
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5julien pauli
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien pauli
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdfRihabBENLAMINE
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8Aurelien Navarre
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2Hugo Hamon
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 

Similaire à "Un module Prestashop, comment ca marche?" (20)

De legacy à symfony
De legacy à symfonyDe legacy à symfony
De legacy à symfony
 
Configuration Management avec Drupal 8
Configuration Management avec Drupal 8Configuration Management avec Drupal 8
Configuration Management avec Drupal 8
 
Playing With PHP 5.3
Playing With PHP 5.3Playing With PHP 5.3
Playing With PHP 5.3
 
Php1
Php1Php1
Php1
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partie
 
Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017Java 9 modulo les modules devoxx fr 2017
Java 9 modulo les modules devoxx fr 2017
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
Java 7 - Fork/Join
Java 7 - Fork/JoinJava 7 - Fork/Join
Java 7 - Fork/Join
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Algo poo ts
Algo poo tsAlgo poo ts
Algo poo ts
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 

"Un module Prestashop, comment ca marche?"

  • 2. Prestashop ? ‡ Solution Open-Source ‡ PHP5/MySQL5 ‡ Système de modules (PHP/Smarty)
  • 3. Système de hooks ‡ Points d’ancrage ‡ 85 hooks dans Prestashop 1.4.5 ‡ On peut en rajouter grâce à la surcharge !
  • 4. Structure des fichiers ‡ Fichiers PHP ‡ Templates Smarty (.tpl) ‡ Feuilles de style, Javascript et images
  • 5. Surcharge « On peut tout surcharger< < sauf les fichiers PHP ! »
  • 6. Structure du code ‡ Classe PHP ‡ Dérive de la classe Module ‡ Nom unique
  • 7. Déclaration variables ‡ Nécessaire si on veut les utiliser plus tard ‡ Pré-remplies (ou pas) : public $variable_vide; public $variable_remplie = ‘valeur’;
  • 8. Squelette d’un module ‡ Des fonctions obligatoires : O construct() O install() ‡ Des fonctions facultatives : O uninstall() O getContent() O displayForm() O hookX()
  • 9. 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
  • 10. 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.)
  • 11. uninstall() ‡ Facultative ‡ Exécutée au clic sur « Désinstaller » ‡ Effectue toute opération nécessaire (suppression de table ou de fichiers, etc.)
  • 12. 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.
  • 13. Fonctions communes ‡ Permettent d’appeler une même fonction depuis plusieurs hooks ‡ Allègent le code et le rendent + lisible
  • 14. Appels des templates ‡ On indique le fichier à utiliser : return $this->display(__FILE__, ‘module.tpl'); ‡ Variables Smarty pré-remplies via PHP< $smarty->assign(‘variable', $this->variable); <et récupérables dans les .tpl : <p> {$variable} </p>
  • 15. displayForm() ‡ Utilisée pour le formulaire dans le B.O. ‡ Pas d’affichage direct mais utilisation de $output ‡ Pas de traitement des résultats
  • 16. 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
  • 17. Traduction ‡ Pas de chaîne « en dur » ‡ Utilisation de $this->l(‘string’) ‡ Traduction via l’onglet dédié du B.O.
  • 18. C’est qui, le barbu ? ‡ Samy Rabih Développeur PHP/JS ‡ O2Sources (Lyon) ‡ @fetard