Avant-propos 1. Objectifs du livre 15 1.1 Orientation 15 1.2 À qui s adresse ce livre? 16 2. Contenu de l ouvrage 17 3. Conclusion 18 Introduction 1. Un peu d histoire pour commencer... 19 1.1 Du web statique au web dynamique 19 1.1.1 Les sites statiques 19 1.1.2 Vers les sites web dynamiques 20 1.2 Les technologies actuelles pour le web dynamique 21 1.3 PHP 22 1.3.1 Présentation 22 1.3.2 Principe de fonctionnement de PHP et MySQL 22 2. Et les CMS dans tout ça? 23 2.1 Qu est-ce qu un CMS? 23 2.2 Que faut-il attendre d un CMS? 24 2.3 Les fonctionnalités générales d un CMS 24 2.3.1 La gestion du contenu et la gestion de sa publication 24 2.3.2 La séparation du fond et de la forme 25 2.3.3 L organisation des contenus 25 2.3.4 La gestion des contributions 25 2.3.5 Un processus de validation 25 2.3.6 Le cycle de vie des articles 25 2.3.7 La prise en charge des différents types de contenu 26 1/13
2.4 Utiliser un CMS? Est-ce vraiment pour moi? 26 3. Joomla! 27 3.1 Historique du CMS Open Source le plus populaire du moment 27 3.2 Le cycle de développement de Joomla! 29 3.3 Disponibilité de Joomla! 30 3.4 Les nouveautés de Joomla! 2.5 31 3.4.1 Interface utilisateur 31 3.4.2 Infrastructure 31 3.4.3 Administration 32 3.4.4 Sécurité 33 3.4.5 Organisation du contenu et de la navigation 34 3.5 En guise de conclusion 35 Connaissances requises pour aborder Joomla! 1. Qu est-ce que Joomla!? 37 2. Apache, PHP, MySQL... Qui fait quoi pour Joomla!? 38 2.1 Présentation 38 2.2 Architecture des solutions LAMP 38 2.2.1 Apache : le serveur web 39 2.2.2 MySQL : le système de gestion de données 40 2.2.3 PHP : le langage de programmation 41 2.2.4 Pour résumer 42 2.3 Internet Information Services : une alternative à Apache sous Windows 43 3. La présentation et l interface utilisateur 45 3.1 (X)HTML, CSS et JavaScript 45 3.1.1 XHTML 46 3.1.2 Les feuilles de style CSS 48 3.1.3 Le langage JavaScript 50 2/13
4. Autres technologies 52 4.1 Le langage XML 52 4.1.1 Historique 52 4.1.2 Principe de XML 54 4.1.3 Cas d'utilisation de XML 55 4.2 XML dans Joomla! 58 5. En synthèse 60 Installation de Joomla! 2.5 1. Introduction 61 1.1 Principe d'installation de Joomla! 2.5 61 1.2 Les pré-requis techniques 62 1.2.1 Produits et versions 62 1.2.2 Problèmes et écueils 62 2. Obtenir et installer une plateforme de serveur web 64 2.1 La plateforme LAMP 64 2.1.1 Principes 64 2.1.2 LAMP et Joomla! 65 2.2 Installation par un package prêt à l emploi 66 2.3 Installation séparée des différents produits 67 2.4 Utiliser un serveur web alternatif - le cas Microsoft IIS 68 3. Installation sous Windows 69 3.1 Utiliser un package d installation 69 3.1.1 Installation avec XAMPP 69 3.1.2 Installation avec Wamp Server 81 3.2 Installer les produits séparément 87 3.2.1 Installation de MySQL 88 3.2.2 Installation d'apache HTTP Server 93 3/13
3.2.3 Installation de PHP sur Apache HTTP Server 96 3.2.4 Installation de Microsoft Internet Information Server 7 102 3.2.5 Installation de PHP sur Microsoft Internet Information Server 7 103 4. Installation sous Linux 104 4.1 Récupération et installation des paquets sous Ubuntu 104 4.2 Récupération et installation des paquets sous Fedora Linux 105 5. Finaliser la plateforme 106 5.1 Des outils complémentaires 106 5.2 Tester l'installation 108 6. Installation de Joomla! 2.5 109 6.1 Télécharger Joomla! 2.5 110 6.2 Installation sur le serveur web 110 6.3 Un assistant pour nous guider 111 6.3.1 Avant de commencer 111 6.3.2 L'assistant d'installation de Joomla! 114 6.4 Installer Joomla! 2.5 chez un hébergeur 122 Administration système de Joomla! 2.5 1. Tour d horizon d'un site Joomla! 2.5 123 1.1 Structure d'un site Joomla! 2.5 123 1.2 Les données d'exemple 127 2. Arborescence d installation de Joomla! 2.5 128 2.1 L'arborescence racine 129 2.1.1 Le contenu des dossiers 129 2.1.2 Les fichiers fondamentaux 131 2.2 L'arborescence de l'administration 132 3. Joomla! 2.5, le cœur et les extensions 133 4/13
3.1 Architecture de Joomla! 2.5 133 3.2 Les différents types d extensions de Joomla! 135 3.2.1 Les templates 135 3.2.2 Les plug-ins 135 3.2.3 Les composants 136 3.2.4 Les modules 136 3.3 Choisir des extensions 137 4. Frontend vs. Backend 137 4.1 Le frontend, la vitrine du site web 138 4.1.1 Les menus 140 4.1.2 Le module d'authentification (Login Form) 140 4.1.3 Le module de recherche 141 4.1.4 Le module de fil d'ariane (Breadcrumb) 141 4.1.5 Autres modules 141 4.2 Qui a besoin du frontend? 141 5. Le backend, l espace des administrateurs 143 5.1 Ergonomie du backend et navigation 143 5.1.1 La barre de menus 146 5.1.2 La barre d'icônes 146 5.1.3 Les composants d'affichage 146 5.1.4 La zone d'information 148 5.2 Les différents menus et boutons d action 149 5.2.1 Les menus 149 5.2.2 Les boutons d action 151 6. Configuration du site 154 6.1 Concepts 154 6.2 Le menu «Site» du backend 154 6.2.1 Le panneau de contrôle (Control Panel) 155 6.2.2 Le profil utilisateur (My Profile) 155 6.2.3 La configuration globale de Joomla! (Global Configuration) 156 6.3 Paramétrage du site après installation - synthèse 162 5/13
7. Configuration du serveur web pour les URL simplifées 162 7.1 Principe de fonctionnement 163 7.2 Avec Apache HTTP Server 164 7.3 Avec Microsoft IIS 165 8. Sauvegarde et restauration d un site Joomla! 2.5 166 8.1 Stratégie de sauvegarde d un site 166 8.2 Sauvegarde de l arborescence et de la base de données 166 8.2.1 Sauvegarde de l'arborescence 166 8.2.2 Sauvegarde de la base de données 167 8.3 Restauration des données 168 8.3.1 Restauration de la base de données 169 8.3.2 Adaptation de la configuration de Joomla! 170 9. Transférer une installation locale de Joomla! 2.5 chez un hébergeur 170 9.1 Préambule 170 9.2 Les informations requises 171 9.3 Sauvegarde et transfert des données 172 Gestion et organisation du contenu 1. La dynamique de rédaction et de publication 175 1.1 Introduction 175 1.2 Qui peut écrire et comment? 176 1.3 Qui valide le contenu? 177 2. L organisation du contenu dans Joomla! 177 2.1 Un point sur les catégories 177 2.2 Qui peut gérer le contenu? 178 3. Les articles : contenu par défaut dans Joomla! 178 3.1 La structure d un article 178 6/13
3.2 La gestion des articles 179 3.3 Rédaction d un article 182 3.3.1 Depuis le frontend 182 3.3.2 Depuis le backend 186 3.4 Modification d'un article 187 3.5 Publication d un article 187 3.6 Les filtres de texte 190 4. Organiser les articles en catégories 193 4.1 La catégorisation dans Joomla! 193 4.2 Création et gestion des catégories 194 4.2.1 La liste des catégories 194 4.2.2 Création d'une catégorie 196 5. Ajouter des médias aux contenus Joomla! 198 5.1 Le gestionnaire de média 198 5.1.1 Présentation du gestionnaire de médias 198 5.1.2 La configuration du gestionnaire de média 200 5.2 Le transfert de médias 200 5.2.1 Transfert de fichiers depuis le backend 200 5.2.2 Transfert de médias en masse 201 5.2.3 Le transfert de fichiers depuis le frontend 204 6. Diverses opérations de maintenance sur le contenu 205 6.1 Les statuts des contenus 205 6.2 Les verrous 207 Gestion des utilisateurs et des permissions 1. Introduction 209 1.1 Préambule 209 1.2 Identifier les besoins utilisateurs 210 7/13
2. Le nouveau système de gestion des permissions de Joomla! 2.5 210 2.1 Limitations de Joomla! 1.5 210 2.2 Les avantages de la nouvelle solution 211 3. La gestion des utilisateurs 212 3.1 Principes dans Joomla! 212 3.2 La connexion au site public 212 3.3 Les comptes utilisateurs 214 3.3.1 La liste des utilisateurs 214 3.3.2 Les paramètres de comptes utilisateurs 215 3.4 Création de comptes utilisateurs 218 3.4.1 Création de comptes depuis le backend 218 3.4.2 Création de comptes depuis le frontend 221 3.5 Création avancée de comptes utilisateurs 222 4. La gestion des groupes 224 4.1 Qu est-ce qu un groupe dans Joomla! 2.5? 224 4.1.1 Principes des groupes 224 4.1.2 Les groupes par défaut 225 4.2 Créer les groupes et les associer aux comptes utilisateurs 226 4.2.1 Création d'un groupe 226 4.2.2 Affectation des groupes 228 5. La gestion des permissions 229 5.1 Le principe des permissions de Joomla! 2.5 229 5.2 Les différentes permissions 231 6. Définition des permissions 232 6.1 Les permissions par défaut 232 6.2 Application des permissions au contenu 233 6.2.1 Les permissions sur les catégories 234 6.2.2 Les permissions sur les articles 237 6.3 Conclusion 238 8/13
7. Les niveaux d'accès 238 7.1 Principe de base des niveaux d'accès dans Joomla! 238 7.2 Les niveaux d'accès standard 239 7.3 Créer des niveaux d'accès supplémentaires 240 8. L authentification des utilisateurs dans Joomla! 242 8.1 Préambule 242 8.2 L authentification Joomla! via la base de données 243 9. Les méthodes d authentification alternatives 245 9.1 Utiliser l authentification Gmail 245 9.2 Utiliser l authentification LDAP 246 9.2.1 Les services d'annuaire 246 9.2.2 Exemple de mise en œuvre avec OpenLDAP 247 Construction d un site Joomla! 2.5 1. La navigation sur un site Internet 251 2. Organisation de la navigation avec les menus 253 2.1 Le principe des menus dans Joomla! 253 2.1.1 Un module pour un menu 254 2.1.2 Les entrées ou liens de menu 256 2.2 Les menus par défaut de Joomla! 2.5 257 2.2.1 Le menu principal 257 2.2.2 Le menu utilisateur 258 2.3 Les différents types d éléments de menu 258 2.4 Ajouter un nouveau menu 260 2.4.1 Création du menu 260 2.4.2 Ajout d'un module pour le nouveau menu 262 2.5 Ajouter des liens de menu 265 2.5.1 Les types de lien de menu pour les contenus 265 9/13
2.5.2 Un lien de type Category List 266 2.5.3 Un lien de type Category Blog 273 2.6 Configuration des modules de menus 279 2.6.1 Sélection de l'affichage de pages 279 2.6.2 Mise en œuvre avec le menu d'exemple 279 2.7 La page d'accueil par défaut 285 3. Tour d horizon des composants par défaut de Joomla! 2.5 286 3.1 Améliorer son site Internet avec les composants de Joomla! 286 3.2 Les bannières publicitaires 287 3.2.1 Principes des bannières 287 3.2.2 Création des annonceurs 287 3.2.3 Création des bannières 288 3.2.4 Affichage des bannières sur le site public 290 3.3 Les flux d'information 292 3.3.1 Les flux RSS 292 3.3.2 Création des flux RSS 293 3.3.3 Afficher les flux RSS 293 3.4 Le moteur de recherche de Joomla! 2.5 297 3.4.1 Activer la recherche 297 3.4.2 Obtenir des statistiques sur les recherches 298 3.4.3 La recherche avancée de Joomla! 2.5 299 Enrichir un site Joomla! avec les extensions 1. Rappel sur les différents types d extensions Joomla! 303 1.1 Les composants 304 1.2 Les modules 304 1.3 Les plug-ins 305 1.4 Les templates 305 2. Travailler avec les modules 306 2.1 La liste des modules 306 2.2 Principe de configuration des modules 308 10/13
2.3 Le positionnement 311 2.4 Les modules par défaut de Joomla! 312 3. Travailler avec les plug-ins 314 3.1 La liste des plug-ins 314 3.2 Les catégories de plug-ins 315 3.3 Principe de configuration des plug-ins 316 3.4 Les plug-ins par défaut de Joomla! 317 3.4.1 Authentification 317 3.4.2 Captcha 318 3.4.3 Content 318 3.4.4 Editors 320 3.4.5 Editors-xtd 321 3.4.6 Extension 321 3.4.7 Finder 322 3.4.8 Quickicons 322 3.4.9 Search 323 3.4.10 System 324 3.4.11 User 326 4. L'esthétique du site par les templates 326 4.1 Principes de séparation du fond et de la forme avec les templates 326 4.1.1 Illustration 327 4.2 Configurer et utiliser les templates Joomla! 329 4.2.1 Le template par défaut 330 4.2.2 Les styles 330 4.3 Utiliser plusieurs templates sur un même site 332 4.4 Les templates par défaut 334 4.4.1 Les templates du site (frontend) 335 4.4.2 Les templates de l'administration (backend) 335 5. Rechercher et installer une extension Joomla! 335 5.1 Le Joomla! Extensions Directory (JED) 335 5.2 Installation depuis le backend 338 5.2.1 Installation de nouvelles extensions 338 11/13
5.2.2 La mise à jour d'extensions 339 5.2.3 Gérer les extensions installées 341 5.3 Quelques exemples d'extensions populaires 344 5.3.1 Installer un éditeur alternatif 345 5.3.2 Installer un gestionnaire de galerie photo 351 5.4 Conclusion 354 Optimisation et sécurisation de Joomla! 2.5 1. Principes d optimisation des sites PHP/MySQL 355 1.1 Optimiser les performances 356 1.2 Optimiser le référencement du site 356 2. Configuration d Apache, de PHP et de MySQLpour les performances 357 2.1 Préambule 357 2.2 Configuration décentralisée avec les fichiers.htaccess 357 2.3 Apache 358 2.3.1 Intervenir sur les capacités de traitement 358 2.3.2 Ajuster la bande passante autorisée 364 2.3.3 Compresser les données 368 2.4 PHP 371 2.5 MySQL 371 2.5.1 La configuration du serveur MySQL 371 2.5.2 Ajuster le cache de requêtes 372 2.5.3 Ajuster la mémoire réservée aux index 372 2.5.4 Optimiser les tables 374 3. Utiliser le cache de données avec Joomla! 2.5 376 3.1 Les différents niveaux de cache 376 3.1.1 La mise en cache des pages 376 3.1.2 La mise en cache des vues et des modules 379 3.2 Conclusion 381 4. Sécuriser un site Joomla! 2.5 382 12/13
4.1 Restrictions d accès 382 4.1.1 Les directives de mod_access et mod_authz_host 382 4.1.2 Accès au site 385 4.1.3 Accès au backend 386 4.2 Cryptage des données échangées 387 4.2.1 Implémenter une stratégie de cryptage SSL 388 4.2.2 Cryptage de l accès à Joomla! 391 4.2.3 Cryptage de l'authentification sur le frontend 392 Webographie 1. Les sites officiels de Joomla! 395 1.1 Le site de référence 395 1.2 Pour obtenir des extensions 395 1.3 Pour les développeurs d'extensions 396 1.3.1 Le JDN 396 1.3.2 JoomlaCode 396 2. Les sites Joomla! francophones 396 2.1 La référence française 396 2.2 Les portails francophones 397 2.3 Les sites d'aide et d'assistance 397 2.4 L'évènementiel en France autour de Joomla! 397 3. Sites proposant des templates 398 4. Conclusion 399 Index 401 13/13