Joomla! : gestion de contenu Web (CMS)

Fiche PLUME
  • Statut de la fiche : Logiciel : En MAJ
  • Création ou MAJ importante : 15/10/2009
  • Correction mineure : 19/09/2011
  • Auteur : Patrick Kocelniak - ENSIMAG (Grenoble INP)
  • Responsable thématique : Christian Helft (LAL)
Mots clés
Description
Fonctionnalités générales
  • Joomla! est un système de gestion de contenu (en anglais, CMS, pour Content Management System). Ce logiciel web permet de créer un site internet dynamique. Les informations sont rédigées dans des articles. Les articles sont classés dans des sections elles mêmes subdivisées en catégories.
  • Joomla! fonctionne avec une interface administration ("backoffice") et une interface utilisateur ("frontoffice"). Le "backoffice" permet de créer la structure du site web (sections, catégories, articles, items de menus, gestion des utilisateurs). La modification des articles existants peut se faire en mode Wysiwyg dans le "frontoffice", ce qui permet une délégation facile à des rédacteurs. L'éditeur des articles propose un mode Wysiwyg pour tout utilisateur mais aussi un mode texte HTML pour des utilisateurs avancés.
  • Joomla! dispose d'un système de modèles (templates) qui permet de modifier très facilement l'aspect graphique du site créé.
  • Joomla dispose d'un système d'extensions qui permet d'enrichir les fonctionnalités selon les besoins. Ces extensions font de Joomla! un CMS très modulaire. Le site officiel joomla recense 3357 extensions (septembre 2009).

  • Fonctionnalités principales :

    • Articles éditables et gérables sans limitations via un éditeur WYSIWYG.
    • Insertion de liens automatiques sur des fichiers téléchargés.
    • Gestion fine de la publication des informations (dates de début et fin de publication).
    • Facilités pour copier et déplacer le contenu entre différentes catégories.
    • Soumission d'articles par les contributeurs depuis l'interface publique (frontoffice).
    • Gestion des menus et paramétrage individualisé des liens de menus.
    • Templates et design complètement personnalisables incluant l’affichage des blocs (au centre, à droite, à gauche, en haut, en bas).
    • Librairie d'images et de fichiers multimédia (PNG, PDF, DOC, XLS, GIF, JPEG, FLASH, AVI, etc...).
    • Gestionnaire d'actualités, sondages, bannières, votes.
    • Multilingue (français compris).
  • Il existe deux versions de Joomla! :

    • Une version 1.5.x (1.5.14 au 15/09/2009) : il s'agit de la version actuelle stable de Joomla!.
    • Une version 1.0.x (1.0.15) : il s'agit de la version précédente de Joomla!. Cette version n'est plus maintenue depuis le 22 juillet 2009. Attention : Cela signifie qu'il n'y a plus de mises à jour de sécurité pour cette version 1.0.x.
  • Une version majeure 1.6 (actuellement disponible en version alpha) devrait voir le jour début 2010, les nouvelles fonctionnalités prévues sont :

    • Contrôle d'authentification amélioré (ACL)
    • Fonctionnalités multi-sites
    • Support multilingues amélioré
    • Un gestionnaire de mises à jour automatique
  • Améliorations principales de Joomla! 1.5.x par rapport à Joomla! 1.0.x :

    • Interface d'administration (backoffice) complètement revue et simplifiée
    • Gestionnaire d'extensions complètement revu et simplifié
    • Edition de templates multi-CSS
    • Support complet Atom 1.0 and RSS 2.0
    • Amélioration des options d'accessibilité
    • Internationalisation améliorée, support complet UTF-8, support RTL, traduction utilisant des fichiers .INI
    • Support LDAP natif
    • Support XML-RPC
    • Possibilité d'implémenter des applications Ajax
  • Quelle version de Joomla! choisir : 1.0.x ou 1.5.x ? Pour faire court : 1.5.x. Pour être plus précis :

    • Joomla! 1.0.x et ses 2700 extensions existent depuis 2005 mais le support de cette version est arrêté depuis le 22/07/2009. Joomla! 1.0.15 fonctionne toujours mais il n'y a plus de mises à jour de sécurité.
    • Joomla! 1.5.x est en version stable depuis janvier 2008. Il dispose d'une interface administrateur simplifiée (en particulier pour gérer les extensions) et de nouvelles fonctionnalités stables (mode LDAP, internationalisation, etc...). Les extensions sont désormais toutes développées pour cette version de Joomla!.
    • Quid du mode legacy de Joomla! 1.5.x (activable via la partie Administrator : Menu Extensions -> Gestionnaire des plugins -> publier le plugin nommé System-Legacy) ? Il permet en théorie de faire fonctionner sur la version 1.5.x les extensions développées pour la version 1.0.x. En pratique, même avec ce mode legacy, beaucoup d'extensions développées pour la version 1.0.x ne fonctionnent toujours pas correctement avec la version 1.5.x. De plus, ce mode legacy ne fonctionnera plus pour les extensions Joomla! 1.0.x au sein de la future version Joomla! 1.6. Il ne faut donc pas compter sur lui pour utiliser de façon durable des anciennes extensions Joomla! 1.0.x.
  • Joomla! 1.5.x et 1.0.x au cas par cas :

    • Vous créez votre premier site Joomla! :
    1. Choisissez Joomla! 1.5.x
    2. Choisissez des extensions développées nativement pour Joomla! 1.5.x. Evitez les anciennes extensions Joomla! 1.0.x.
    3. Choisissez un template graphique compatible Joomla! 1.5.x
    • Vous avez déjà un site Joomla! existant en 1.0.x et vous souhaitez mettre en oeuvre la migration en Joomla! 1.5.x :
    1. Après avoir fait toutes vos sauvegardes, effectuez la migration de 1.0.x à 1.0.15.
    2. Puis effectuez la migration de 1.0.15 à 1.5.x. (par création d'un nouveau site et utilisation de la solution "Migrator" décrite ci-dessous)
    3. Vous vérifiez que toutes vos extensions et votre template fonctionnent.
    4. Si certaines extensions ou certains templates ne fonctionnent pas : pas d'autre solution que d'en trouver une version native pour Joomla! 1.5.x
    • Vous avez déjà un site Joomla! existant en 1.0.x et vous n'avez pas le temps d'étudier tout de suite une migration en Joomla! 1.5.x :
    1. Après avoir fait toutes vos sauvegardes, effectuez la migration de 1.0.x à 1.0.15. C'est une migration généralement sans risques qui prendra en compte les dernières mises à jour de sécurité disponibles de cette version (juillet 2009).
    2. Planifiez dès que possible la mise à jour ultérieure en version 1.5.x.
  • Migration de Joomla! 1.0.x à 1.5.x :

    • Il existe une procédure appelée "Migrator" décrite dans les logiciels connexes.
    • Cette procédure est en version stable depuis avril 2008. Elle est surtout sans risques car elle ne détruit pas le site 1.0.x existant.
    • Elle permet une migration des données (toute la structure du site avec ses sections, catégories, articles et menus).
    • Mais elle ne gère pas le problème des extensions qui n'auraient pas évolué vers Joomla! 1.5.x.
    • Elle se présente sous la forme d'un composant (migrator v 1.5 au 13/07/2009) à installer sur la version 1.0.x de votre site Joomla! et de l'activation du mode migration dans l'installation de votre nouveau site Joomla! 1.5.x.
Autres fonctionnalités
  • Installation par script PHP avec interface graphique : très facile.
  • Interface LDAP : intégrée dans la version 1.5.x, disponible et opérationnelle sous forme d'extension/hack dans la version 1.0.x.
  • Moteur de recherche intégré.
  • Changement de l'ordre d'affichage des articles et autres objets.
  • Affichage de flashs infos aléatoires.
  • Gestionnaire de flux RSS, syndication paramètrable sur toutes les pages.
  • Envoi d'article par mail.
  • Article en format imprimable.
  • Création de pdf à la volée.
  • Installation simple et rapide des templates et des extensions.
  • Gestion des archives, stockage des anciens articles.
  • URLs SEF (Search Engine Friendly) permettant une meilleure indexation par les moteurs de recherche.
  • Édition des balises META (titres et mots clefs) pour chaque article.
  • Normes d’accessibilité.
  • Cache paramétrable et compression des pages pour augmenter les performances.
  • Possibilité de mettre le site "hors ligne" pour une maintenance tout en restant accessible par l'administrateur.
  • Extensions multisites et multilingues possibles.
  • Statistiques : par navigateur, par système d'exploitation client, par recherches effectuées. Les statistiques sur les recherches effectuées sont très utiles par exemple pour :
    • Identifier des informations cherchées mais non trouvées sur le site.
    • Identifier les types de systèmes d'exploitations et de navigateurs web utilisés pour accéder au site.
Interopérabilité
  • Les articles sont stockés dans une base de données mysql sous forme HTML.
Contexte d'utilisation dans mon laboratoire/service
  • Utilisations : en versions 1.5.14 et 1.0.15, serveur Apache 2.x, PHP5, MySQL 5
    • Intranet pédagogique et administratif Grenoble INP - ENSIMAG. 1000 utilisateurs. 80 utilisateurs/rédacteurs potentiels. 10 rédacteurs effectifs actuellement. 2 webmasters. 260 000 visites. Les articles initiaux ont été importés de l'ancien intranet HTML statique par des copier/coller du code HTML dans l'éditeur wysiwyg JCE. Version utilisée : 1.5.14
    • Extranet Tice Grenoble INP - ENSEEG/PHELMA (http://atelweb.enseeg.inpg.free.fr ) : portail d'un atelier de 100 sites web (dont 30 de type Joomla!). 140 000 visites. Versions utilisées : 1.5.7 et 1.0.15.
Limitations, difficultés, fonctionnalités importantes non couvertes
  • Comme tout CMS, la difficulté est principalement de comprendre la structuration des informations et de s'approprier son vocabulaire (sections, catégories, articles, menus).
  • Les extensions sont à choisir avec soin.
    • Ne pas en abuser.
    • Privilégier celles qui sont complètement indépendantes du noyau Joomla!.
    • Eviter celles qui modifient des parties du noyau Joomla!. Si elles sont vraiment nécessaires : à utiliser en connaissance de cause car des mises à jour du CMS nécessiteront presque toujours une réinstallation ou un redéveloppement de ces extensions.
  • Gestion des droits utilisateurs : Joomla ne dispose par défaut que de 2 groupes utilisateurs (public et membre). Cette limitation peut être levée par des extensions GMAccess (solution gratuite pour Joomla! 1.0.x) ou juga (solution commerciale pour Joomla! 1.5.x, tarif : 50$).
  • Comme toute solution PHP/MySQL, il est nécessaire d'être attentif à la sécurité et de suivre les mises à jour de sécurité de Joomla!. Le succès de joomla en fait une cible intéressante pour les hackers bien que Websecure Group garantisse la sécurité du CMS par un certificat décerné lors du festival russe : Chaos Construction (Août 2006).
  • Pas d'import et d'export faciles possibles depuis ou vers d'autres CMS.
  • Une migration éventuelle depuis ou vers un autre système CMS que Joomla! passera souvent par des copier/coller des articles HTML qui sont fastidieux mais facilités par un éditeur d'articles Wysiwyg/HTML.
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré
  • Distribution sur clé USB pour environnement Windows (Movamp + Joomla pré-installé) : http://www.sarki.ch/jce15/index.php/telecharger/vo...
  • Attention : les différentes solutions ayant Joomla! pré-installé ne mettent pas toujours à disposition les toutes dernières versions de Joomla!. Pensez à appliquer les dernières mises à jour de sécurité.
Plates-formes
Logiciels connexes
  • L'éditeur d'articles est un aspect très important dans Joomla!, peut être le plus important. C'est en effet son niveau de convivialité qui facilite le travail quotidien des rédacteurs. Joomla! fournit un éditeur d'articles intégré en mode WYSIWYG. Il est possible d'installer sous forme d'extension un éditeur encore plus convivial pour l'utilisateur. Les deux meilleures solutions sont :

    • Joomla JCE : gratuit avec une contribution de 20 $/an pour des plugins supplémentaires (gestion d'images, flash, vidéos, autres fichiers téléchargés par fenêtre popup). Ce petit investissement apporte un vrai confort supplémentaire pour l'édition. Une petite préférence pour cet éditeur qui permet une personnalisation poussée (des types de fichiers autorisés à télécharger entre autres). Site officiel : http://www.joomlacontenteditor.net/. Site français : http://jce.sarki.ch/.
    • Joomla FCK : gratuit (mais un mode de donation de l'ordre de 20$/an semble être en cours de mise en place également) avec aussi une gestion d'images, flash, vidéos, autres fichiers téléchargés par fenêtre popup. Site officiel : http://www.joomlafckeditor.com/.
  • Authentification CAS

  • Migration d'un site Joomla! 1.0.x vers 1.5.x par le composant migrator, version stable 1.5 :

    • La migration n'est pas garantie à 100% mais le principe de la migration est sans risques car il ne détruit rien dans le site initial mais effectue la migration réelle dans une nouvelle installation de Joomla! 1.5.x.
    • Principe :
    1. Installation du composant migrator en tant qu'extension du site Joomla! 1.0.x existant.
    2. Ce composant permet principalement un export de la base de données dans un fichier.
    3. Nouvelle installation Joomla! 1.5.x à effectuer séparément dans un répertoire différent de l'installation 1.0.x.
    4. Lors de cette nouvelle installation, choisir une option "Script de migration" avec le téléchargement.
    5. La base de données est alors correctement migrée.
    6. Il reste à recopier les fichiers spécifiques du site initial 1.0.x vers le nouveau site 1.5.x : images, fichiers de données (flash, ppt, doc, vdéos, autres), template. Principalement, cela concerne les répertoires : "images" et "templates"
    7. Ce que ne couvre pas cette solution migrator : la migration des extensions du site Joomla! 1.0.x.
    8. Si le template de l'ancien site n'est pas compatible Joomla! 1.5.x, il faut également l'adapter ou le remplacer.
  • Extensions :

  • Modèles graphiques (templates) gratuits :

  • Prestations commerciales autour de la solution Joomla! :

    • Si vous avez besoin de développements (ou extensions) spécifiques autour d'une solution Joomla!, il existe de nombreux prestataires privés, SARL, EURL ou freelances qu'on peut trouver par exemple par une recherche sur internet.
Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement
  • Le développement de Joomla! est en mode open source GPL depuis 2005.
Eléments de pérennité
  • Expérience conséquente de l'équipe de développement de ce type de CMS (> 5 ans).
  • Historiquement, Joomla! a été développé sur les idées initiales mises en oeuvre dans le logiciel CMS Mambo (2003). Le passage de Mambo à Joomla! s'est fait en douceur malgré la scission Mambo/Joomla (compatibilité ascendante pour assurer la transition).
  • La transition entre les versions majeures 1.0.x et 1.5.x de Joomla! s'est faite également en douceur. Etant donné le grand succès historique de ce CMS, la version 1.0.x a été maintenue jusqu'au 22/07/2009 malgré la sortie de la version 1.5.x en 2008.
  • La version 1.5.x a eu un temps de développement long mais est très réussie (simplicité d'utilisation accrue pour l'utilisateur et l'administrateur, mode d'extensions simplifié, LDAP intégré, internationalisation meilleure, normes d'accessibilité PDA/ téléphone/ordinateur)
  • La future version 1.6 a également un temps de développement très long. Mais dans le cas de Joomla!, cela semble être dans l'objectif de mettre à disposition une version fiable pour ce changement majeur.
  • Argument le plus important : l'équipe de développement réagit très vite à chaque faille de sécurité découverte. Les patchs (mises à jour de sécurité) sont mis à disposition très rapidement.
  • Une forte communauté d'utilisateurs à la fois internationale et française.
Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)
  • Sécurité : Voici les trois mesures importantes à prendre pour préserver votre site et ses données. Les deux premières sont très simples à mettre en oeuvre.
    • Sauvegarde d'un site web Joomla! :
    1. Sauvegarde des fichiers du site : ces fichiers contiennent les images et autres fichiers liés (doc, flash, vidéos), les fichiers programmes et les extensions installées
    2. Sauvegarde de la base de données mysql : la base de données contient la structure du site (sections, catégories, articles, menus)
    3. Il est très important de mettre en oeuvre une procédure de sauvegarde quotidienne des fichiers et de la base de données de votre site. Joomla! est en effet une solution populaire en php/mysql et donc séduisante pour des attaques de hackers. La sauvegarde est donc une précaution nécessaire.
    • Mises à jour :
    1. Il est indispensable d'effectuer les mises à jour de sécurité au plus vite. En effet, l'exploitation d'une faille de sécurité peut se traduire de plusieurs façons sur votre site : simple détournement de la page d'accueil, suppression du contenu de la base de données, suppression des fichiers du site.
    2. Ces mises à jour sont très simples à appliquer, il s'agit en général d'un ensemble de fichiers à installer dans le répertoire du site web existant.
    • Sécurisation du serveur php/mysql :
    1. Cette mesure consiste à protéger non plus directement l'application Joomla! mais à protéger le serveur web/php/mysql qui l'héberge.
    2. Il n'y a pas de fiche de recette toute faite (même si certains points sont connus comme par exemple la mise à OFF de la variable php register_globals).
    3. Ce type d'opération nécessite l'intervention d'un administrateur système expérimenté.
  • Joomla : prix CMS Awards 2006, 2007 et 2008 (http://www.packtpub.com/open-source-cms-award-prev... )
  • Conseils :
    • Le vocabulaire "sections" et "catégories" est peu compréhensible au début. Pour simplifier, considérer les sections comme des dossiers/répertoires principaux et les catégories comme des sous-dossiers/sous-répertoires.
    • Chaque article doit en général appartenir à une section et une catégorie.
    • La version 1.5.x permet cependant d'avoir si nécessaire des articles indépendants des sections ou catégories.
    • Les étapes de création principales d'un site Joomla! sont :
    1. Création des sections et catégories pour ranger les articles
    2. Création des articles
    3. Création des menus liés à des sections ou catégories ou articles.
Contributions