Avant-propos 1. Objectifs 9 2. Ce dont vous avez besoin 10 3. Ce qui n'est pas traité dans le livre 11 4. Conventions 11 Introduction 1. Aperçu 13 2. Historique 14 3. Nouveautés 15 4. Architecture 16 5. Arborescence générale 17 6. Les extensions 21 Cheminement d'une requête utilisateur 1. Introduction 23 2. Chargement du noyau 26 1/8
2.1 Définition des constantes PHP 27 2.2 Chargement du Framework 28 2.3 Étapes supplémentaires pour l'administration 29 3. Construction de l'application 30 4. Exécution de l'application 31 4.1 Initialisation de l'application 32 4.2 Calcul de l'itinéraire 33 4.2.1 Analyse de l'url en mode RAW 37 4.2.2 Analyse de l'url en mode SEF 37 4.3 Suivi de l'itinéraire 39 5. Préparation de l'affichage 41 6. Envoi de la réponse 43 Développement de modules 1. Introduction 45 2. Description du module 47 3. Entrée du module 51 4. Fichier de soutien 52 5. Affichage 54 6. Fichiers de langues 57 7. Mise à jour 62 2/8
7.1 Définition du serveur de mise à jour 62 7.2 Définition du fichier de mise à jour 63 Développement de composants 1. Introduction 65 2. Entrée du composant 66 2.1 Partie publique 67 2.2 Partie administrateur 69 3. Le paradigme «Modèle-Vue-Contrôleur» 69 3.1 Implémentation dans Joomla! 70 3.1.1 Les modèles 70 3.1.2 Les vues 72 3.1.3 Les contrôleurs 74 3.1.4 Fonctionnement général du paradigme MVC 75 3.2 Spécialisation des modèles 76 3.2.1 Les modèles de collections 76 3.2.2 Les modèles de formulaires 78 3.2.3 Les modèles d'administration 81 3.3 Spécialisation des contrôleurs 87 3.3.1 La gestion d'un formulaire 87 3.3.2 Le contrôleur d'administration 90 4. Construction du composant 91 4.1 Convention de l'arborescence 91 4.1.1 Le dossier des modèles 92 4.1.2 Le dossier des vues 93 4.1.3 Le dossier des contrôleurs 93 4.1.4 Le dossier des fichiers de soutien 94 4.2 Construction de la partie publique 94 4.2.1 Entrée du composant 95 4.2.2 Les modèles 95 3/8
4.2.3 Les vues 97 4.2.4 Les contrôleurs 99 4.2.5 Le routeur 99 4.2.6 Calcul du cheminement 107 4.2.7 Classes de soutien HTML 108 4.2.8 Spécialisation de la classe JCategories 109 4.3 Construction de la partie administrateur 111 4.3.1 Entrée du composant 112 4.3.2 Les modèles 113 4.3.3 Les vues 113 4.3.4 Les contrôleurs 114 4.3.5 Configuration générale 115 4.3.6 Définition des privilèges 115 4.3.7 Description du fichier d'installation du composant 118 Développement de plugins 1. Introduction 129 2. Utilisation 131 3. Obtention d'un plugin 132 4. Écriture d'un nouveau plugin 132 4.1 Le fichier XML 132 4.2 Le fichier PHP 133 4.3 Les événements standard 134 4.3.1 Groupe authentication 134 4.3.2 Groupe captcha 136 4.3.3 Groupe content 136 4.3.4 Groupe editors 139 4.3.5 Groupe editors-xtd 139 4.3.6 Groupe extension 140 4.3.7 Groupe finder 141 4/8
4.3.8 Groupe installer 142 4.3.9 Groupe quickicon 142 4.3.10 Groupe search 143 4.3.11 Groupe system 144 4.3.12 Groupe twofactorauth 146 4.3.13 Groupe user 147 5. Focus sur les plugins Smart Search 148 5.1 Introduction 148 5.2 Activation du moteur Smart Search 149 5.3 Mise en œuvre 149 5.3.1 Le fichier XML de configuration 150 5.3.2 Le fichier PHP 150 5.3.3 La classe FinderIndexerAdapter 151 5.3.4 La classe FinderIndexerResult 160 5.4 Complément 162 6. Application au composant de gestion de dictionnaire 163 Les templates 1. Introduction 165 2. L'arborescence d'un template 165 3. Le fichier principal de mise en page 167 4. Les fichiers secondaires de mise en page 169 5. Les paramètres 170 6. Les fichiers médias 171 5/8
7. Les styles de modules 172 8. La surcharge de l'affichage standard 173 9. Les gabarits partagés de Joomla! 3.x 174 9.1 Description 174 9.2 Mise en œuvre 176 9.3 Surcharge à partir d'un template 177 Les outils de la librairie 1. Les classes fondamentales 179 1.1 Le chargeur de classes 179 1.2 La classe JObject 181 1.3 L'usine d'objets globaux 182 1.4 Les registres 185 1.5 L'application 188 1.5.1 La classe JApplicationCms 189 1.5.2 La classe JMenu 195 1.5.3 La classe JRouter 198 1.5.4 La classe JCategories 201 1.5.5 La classe de soutien 205 1.6 Le document 206 1.7 Le cache 220 2. La base de données 224 2.1 Opérations sur la base de données 225 2.1.1 Méthodes de création et de destruction 225 2.1.2 Méthodes d'informations 226 2.1.3 Opérations de sélection 227 2.2 Construction d'une requête 232 2.3 Opérations sur les tables 237 6/8
2.4 Utilisation des ensembles emboîtés 243 3. La génération de code HTML 247 3.1 Classes de soutien 248 3.1.1 Description du mécanisme 248 3.1.2 Les fonctions implémentées 250 3.2 Les barres de boutons 271 3.3 Les formulaires 276 3.3.1 Architecture 276 3.3.2 Les champs prédéfinis 286 3.3.3 Les règles prédéfinies 291 3.4 La bibliothèque d Interface Utilisateur Joomla (JUI) 291 3.4.1 La librairie Bootstrap 291 3.4.2 La bibliothèque d'icônes IcoMoon 299 3.4.3 Le langage LESS 300 4. La gestion de la technologie Ajax 302 4.1 Définition d'une requête Ajax 302 4.2 Interfaçage avec les modules 303 4.3 Interfaçage avec les plugins 304 5. La gestion des privilèges 304 5.1 Les utilisateurs 305 5.2 Les règles d'accès 309 5.2.1 La classe JAccess 311 5.2.2 La classe JAccessRule 313 5.2.3 La classe JAccessRules 314 6. L'environnement 316 6.1 La requête 316 6.2 Le navigateur 318 6.3 Le résultat 321 6.4 Les URI 322 6.5 La session 326 7/8
7. Le système de fichiers 330 7.1 Les fichiers 330 7.2 Les dossiers 333 7.3 Les chemins 337 7.4 Les flux 338 7.5 Les archives 344 8. Les outils du développeur 345 8.1 Fichiers de traces 346 8.2 Performances 347 9. Les utilitaires 348 9.1 L'internationalisation 349 9.1.1 L'interface utilisateur 349 9.1.2 Le système d'aide 358 9.2 Les dates 359 9.3 Les chaînes de caractères 362 9.4 Les filtres 365 9.5 Les tableaux 367 9.6 Le cryptage 369 9.7 L'envoi de courriers électroniques 370 Index 375 8/8