Joomla! : gestion de contenu Web (CMS)

Fiche PLUME
  • Création ou MAJ importante : 21/10/2008
  • Correction mineure : 17/11/2008
Auteur :
  • Patrick Kocelniak - ENSIMAG (Grenoble INP)
Contact pour cette fiche :
Responsable thématique :
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 3850 extensions (octobre 2008).

  • 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és 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 y a 2 versions de Joomla! :

    • Une version 1.5.x (1.5.7 au 21/10/2008) : il s’agit de la version actuelle de Joomla!, stable depuis janvier 2008.
    • Une version 1.0.x (1.0.15 au 21/10/2008) : il s’agit de la version précédente de Joomla!, stable depuis 2005. Cette version est maintenue jusqu’au 22 juillet 2009 en raison du grand nombre d’installations existantes. Attention : Cela signifie qu’il n’y aura plus de mises à jour de sécurité pour cette version 1.0.x après le 22/07/2009.
  • 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 13/10/2008, l’équipe de Joomla! a annoncé la date de la fin du support de Joomla! 1.0.x : le 22/07/2009. Cette annonce laisse entendre que les mises à jour de sécurité pour Joomla! 1.0.x s’arrêteront le 22/07/2009.
    • 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…). Joomla! 1.5.x et les extensions spécifiques à cette version ont eu un temps de développement très long. L’annonce de la fin du support de Joomla! 1.0.x devrait favoriser et accélérer les développements ou migrations d’extensions pour Joomla! 1.5.x.
    • 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 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 tout de suite 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 ne fonctionnent pas : essayez de trouver une version native de ces extensions pour Joomla! 1.5.x ou sinon remplacez-les par des extensionremplacez-le par un template compatible 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é.
      2. Jusqu’au 22/07/2009 : appliquez les mises à jour de sécurité proposées concernant Joomla! 1.0.x.
      3. Faites un voeu pour que la fin du support de Joomla! 1.0.x soit repoussée à une date postérieure au 22/07/2009. Si ce n’est pas le cas : étudiez et planifiez la migration vers Joomla! 1.5.x avant le 22/07/2009.
  • Migration de Joomla! 1.0.x à 1.5.x :

    • Il y a 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.1 au 07/08/2008) à 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 moteur de recherche, système d’exploitation client, recherches effectuées. Les statistiques des 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: 
  • Utilisations : en versions 1.5.7 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. 160 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.7 (initialement : 1.0.15)
    • 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!). 70 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é en versions 1.0.x et 1.5.x) : http://joomlacode.org/gf/project/draft_server/
  • Attention : les différentes solutions ayant Joomla! pré-installé ne mettent souvent pas à 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.1 :

    • 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.
    • Maturité du composant Migrator : bonne.
    • Site de téléchargement : http://joomlacode.org/gf/project/pasamioprojects/f...
    • Tutoriel pas à pas de migration : http://www.siteground.com/tutorials/joomla15/jooml... (version US)
  • 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.
  • L’équipe de Joomla! est issue de celle qui avait développé le CMS Mambo (gratuit mais développement mixte sous couvert d’une société privée MIRO).
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! se fait également en douceur. Etant donné le grand succès historique de ce CMS, la version 1.0.x est toujours maintenue depuis janvier 2008 malgré la sortie de la version 1.5.x et elle restera maintenue jusqu’au 22/07/2009.
  • 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)
  • 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 3 mesures importantes à prendre pour préserver votre site et ses données. Les 2 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 à jours :
      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 et 2007 (http://www.packtpub.com/award )
  • 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: