Chapitre 1

1.6 Exemples de sites gérés par Joomla!

Pour vous faire une idée de ce que l’on peut obtenir en utilisant Joomla!, nous vous proposons une courte liste de sites réels.

joomla.fr, France

C’est le site de référence officiel en langue française (voyez aussi joomla.fr).

Joomla! 1.5 Chapitre 1

Figure 1.1 http://www.joomla.fr

Travel Shop, Irlande

Un site touristique exploitant un système de menu original provenant de joomlart.com.

Joomla! 1.5 Chapitre 1

Figure 1.2 http://www.travelshopireland.com

Mário Moraes, Brésil

Le site Web officiel d’un coureur automobile. Le template accueille de nombreux objets animés au format Flash.

Joomla! 1.5 Chapitre 1 - Mário Moraes, Brésil

Figure 1.3 http://www.mmoraes.com

Frank Lüdtke, Allemagne

Un bel exemple de combinaison de Joomla! avec la galerie de photos Coppermine.

Joomla! 1.5 Chapitre 1 - Frank Lüdtke, Allemagne

Figure 1.4 http://www.livinggallery.de/

Feuille blanche, France

Le site de deux créateurs graphiques.

Joomla! 1.5 Chapitre 1 - Feuille blanche, France

Figure 1.5 http://www.feuilleblanche.com

Urth.tv, USA

Un site citoyen s’adressant au monde entier !

Joomla! 1.5 Chapitre 1 - Urth.tv, USA

Figure 1.6 http://www.urth.tv

unric.org, Europe

Les Nations Unies ont adopté Joomla!. Dans ce cas précis, il fallait gérer treize langues, et certaines
devaient s’affi cher en même temps sur la même page.

Joomla! 1.5 Chapitre 1- unric.org, Europe

Figure 1.7 http://www.unric.org

porsche.com.br, Brésil

Pour fi nir en beauté, voici le site de l’importateur brésilien des voitures Porsche. Il a accompagné toute
l’histoire de Joomla! depuis l’époque de Mambo et vient de basculer vers la version Joomla!1.5.

Joomla! 1.5 Chapitre 1 - porsche.com.br, Brésil

Figure 1.8 http://www.porsche.com.br

Vous trouverez d’autres sites propulsés par Joomla! en vous rendant dans la section Forum du site
www.joomla.org. Cherchez le terme « Showcase ».

1.5 Versions de Joomla!

Comme pour tout logiciel, Joomla! évolue par étapes. L’équipe Joomla! a rendu publique le 1er septembre
2005 une feuille de route (roadmap). La première version publiée est la 1.0.

Cette nouvelle numérotation visait à éviter toute confusion avec le logiciel Mambo dont Joomla! est
issu. La version 1.0 est une version retouchée de la version 4.5.2.3 de Mambo. Les retouches concernaient
le changement de nom, quelques erreurs en attente et des correctifs de sécurité. À l’heure où
nous mettons sous presse, Mambo est arrivé à la Version 4.6.2.

Dans les deux années qui viennent de s’écouler, il y a eu treize versions de Joomla! 1.0.x. Elles ont
permis d’améliorer une foule de petits détails dans le code. Si vous en avez suivi l’évolution, vous
aurez remarqué avec joie que Joomla! est devenu de plus en plus fi able.

1.4.2 Convention de versionnage de Joomla!

Les versions de Joomla! obéissent à la convention X.Y.Z :

  • X = Numéro majeur. Ce chiffre progresse lors de modifi cations radicales du code source. Une
    nouvelle version majeure n’est en général pas compatible avec les versions précédentes.
  • Y = Numéro mineur. Ce chiffre progresse, en cas de modifi cations importantes au niveau fonctionnel.
    En général, la compatibilité est maintenue (moyennant quelques aménagements).
  • Z = Numéro de maintenance. Ce chiffre augmente de 1 dès qu’une nouvelle version est diffusée
    suite à des corrections et suppressions de failles de sécurité. La quantité de modifi cations est
    limitée et les nouveautés fonctionnelles sont très rares. La compatibilité est assurée avec les
    versions précédentes de mêmes numéros majeur et mineur (mêmes valeurs X et Y).

Toute évolution au niveau majeur (X) ou mineur (Y) correspond à une full release. Dans ce cas prennent
place des périodes probatoires en état Alpha puis Bêta. La durée de ces périodes de test n’est
pas fi gée et dépend de l’équipe de développement. Les versions Bêta sont normalement mises à
disposition pendant trois semaines, ce qui permet aux concepteurs de composants de les adapter à la
nouvelle version.

En revanche, une release de maintenance est immédiatement opérationnelle.

La version 1.5.0 correspond à la première version majeure au bout de deux ans. Elle a d’abord donné
lieu à des versions Alpha, puis Bêta puis à des versions candidates à diffusion RC. Les créateurs de
composants tiers ont eu le temps d’adapter leurs produits à la nouvelle version. La communauté a
effectué des tests intensifs et les incompatibilités par rapport à l’ancienne version ont été répertoriées.

Vous pouvez lire les déclarations et les résolutions de problèmes sur le site Web de Joomla! (dans le
Bug-Tracker). N’hésitez pas à apporter votre contribution si vous découvrez une erreur non encore
déclarée. Vous y trouverez également la liste des améliorations les plus attendues.

Le développement de Joomla! 1.5 a commencé à l’automne 2005, sans faire trop de bruit au départ. Les
idées étaient déjà très claires à cette époque, et la première version Alpha est sortie en février 2006.

1.4.3 Feuille de route (prévisions d’évolution)

Cette feuille de route (roadmap) est bien sûr sujette à modifi cation éventuelle, mais elle donne une
idée de la tendance générale.

Version Date prévue Remarques
Mambo 4.5.2 17 février 2005 Dernière version stable de Mambo
Joomla! 1.0.x Septembre 2005 Reprise de la version Mambo 4.5.2.3, correction dʼerreurs et de failles de sécurité, dernière version stable de Joomla!
Joomla! 1.5 Bêta 1 Oct 2006

Internationalisation (support complet de UTF8)

Localisation de lʼinterface dʼadministration dans toutes les langues

Plugins utilisateurs

Base de données : support de MySQL et de MySQLi

Système de transfert FTP permettant de contourner le problème du mode sécurisé Safe Mode de PHP chez les fournisseurs dʼaccès

Révision profonde de la structure en vue de permettre de créer des sites Web accessibles avec Joomla! (au niveau infrastructure)

Séparation de la logique de programmation de celle de présentation

Optimisation de lʼexploitation par les moteurs de recherche (SEF)

Mécanisme de mise en cache amélioré

Joomla! 1.5 Bêta 2 Mai 2007

Documentation des programmeurs (API, Howto)

Optimisation de lʼinterface API

Amélioration du cache

Meilleur support des URL pour les moteurs de recherche

Introduction de lʼinfrastructure JavaScript Mootools

Intégration du Template accessible Beez dans le noyau

Joomla! 1.5 RC1-4 Juillet-Décembre 2007

Documentation utilisateur

Texte d'aide

Suppression d'erreurs

Optimisation de sécurité et de performances

Tests multi-plates-formes et multinavigateurs

Joomla! 1.5 stable Janvier 2008 La vraie version stable
Version suivante Pas de date

Nouveau système de contrôle des accès utilisateurs

Versionnage des contenus

Installation multisites (plusieurs pages Joomla! avec la même installation)

Mécanisme de mise à jour

Système de fi chiers virtuel

Support de plusieurs bases de données

Tableau 1.1 : Feuille de route de Joomla! (décembre 2007)

1.4.4 Quelques détails des évolutions

Comme le Tableau 1.1 le laisse deviner, la version 1.5 est la première version vraiment complète de Joomla!. Dans un premier temps, l’équipe de Joomla! a d’abord pris en compte l’héritage provenant de Mambo avant de trouver sa propre voie. Les enrichissements incorporés dans Joomla! 1.5 montrent clairement dans quelle direction s’oriente le logiciel.

Internationalisation

  • Tous les textes statiques peuvent dorénavant être traduits dans des fi chiers en plusieurs langues. Cela concerne notamment la partie administrative qui n’était au départ disponible qu’en anglais ;
  • Support de l'écriture de droite à gauche (RTL, par exemple pour l’arabe, l’hébreu, le farsi et l’urdu) ;
  • Conversion intégrale vers le jeu de caractères UTF-8 pour coder et affi cher tous les caractères au format Unicode 16.

Plugins utilisateurs

Ce qui s’appelait auparavant Mambot s’appelle dorénavant un plugin. Aux premiers plugins de
contenu (content), d’édition et de recherche sont venus se joindre des plugins utilisateur (User),
d’authentifi cation, xmlrpc et système.

Ces nouveaux plugins permettent de mettre en place des mécanismes d’identifi cation d’accès à
partir de programmes externes.

Support de XML-RPC

Le mécanisme XML Remote Procedure Call constitue une spécifi cation permettant à des logiciels
situés sur des plates-formes différentes et des environnements différents de communiquer. Cette
spécifi cation supporte tous les langages courants de programmation. Vous trouverez des librairies
pour convertir le code vers XML-RPC. Joomla! est doté d’une telle interface de programmation. Elle
permet par exemple à un utilisateur de transmettre une image depuis Flickr ou bien de rédiger un
article avec OpenOffi ce pour le diffuser ensuite dans Joomla!. Les développeurs ne sont pas en reste ;
ils peuvent dorénavant dialoguer avec Joomla! via cette interface depuis un programme Java.

Support de plusieurs bases de données

Joomla! 1.5 est doté d’une couche logicielle de séparation grâce à laquelle il est possible d’exploiter
plusieurs versions de bases de données. Pour chaque installation Joomla!, il n’est possible d’utiliser
qu’une seule base à la fois. À l’heure actuelle, les deux versions MySQL 4.x et 5.x sont supportées
mais d’autres SGBD le seront ultérieurement.

Système FTP pour gérer le problème du mode sécurisé de PHP

Pour éviter les problèmes fréquents de droit d’accès aux données, il a été ajouté une couche FTP.
Elle permet d’installer de nouveaux composants et d’effectuer des transferts par téléchargement
PHP et par FTP. Les paramétrages contraignants (mais justifi és) imposés par les FAI au niveau du
langage PHP rendaient souvent diffi cile l’installation d’extensions et le téléchargement des fi chiers.

Mise à jour de l’infrastructure Joomla!

Dans les premières versions, il n’y avait pas d’infrastructure au sens strict, c’est-à-dire une boîte à
outils aux limites bien défi nies pouvant servir d’interface de programmation API. Peu après la
rupture avec Mambo, il est devenu évident qu’il fallait modifi er quasiment partout l’ancien code
source. Il fallait reformuler et reprogrammer proprement les fonctions de Joomla!. Une infrastructure
digne de ce nom (framework) doit être souple, évolutive, totalement séparée de la partie affi chage
et surtout, aisée à prendre en main. Il faut que les développeurs tiers puissent créer en peu de temps
des composants de bonne qualité. Une interface API est donc devenue incontournable. Joomla!1.5
en possède une.

Accessibilité

L’accessibilité pour les personnes handicapées est un sujet important, puisque depuis début 2006
tous les sites gouvernementaux d’Allemagne doivent être conformes aux standards édictés par l’organisation W3C. Joomla!1.5 est livrée avec un template offrant une accessibilité complète (il s’appelle
Beez). La conformité aux standards est ainsi assurée.

Pour garantir cette accessibilité, il faut se conformer à des standards du Web (du code HTML/
XHTML validable) Il faut aussi séparer rigoureusement les contenus (les textes et les images) de la
manière de les présenter, en utilisant des feuilles de styles en cascade CSS. Actuellement, seule la
partie visible par les visiteurs est conforme. La partie administrative le sera dans une version ultérieure.
Elle est déjà pilotable par un non-voyant.

Adaptation aux moteurs de recherche

Le support des adresses URL exploitables par les moteurs de recherche a été extirpé du noyau de
Joomla! pour constituer dorénavant un plugin. Il devient ainsi d’en utiliser les possibilités à partir de
composants d’autres programmeurs, ce qui était très diffi cile auparavant.

Les projets Google Summer of Code

Depuis l’année 2005, la société Google parraine les programmeurs talentueux dans leurs projets
Open Source. Elle attribue à chacun 4 500 $ US dans le cadre d’un projet appelé Summer of Code
(programmation d’été). Cela évite à des étudiants de chercher un job d’été et leur permet de se consacrer
totalement à leur passion, au profi t de la communauté mondiale, et bien sûr à celui de Google.
Chaque année, Summer of Code donne à Google l’occasion de se faire connaître, de recueillir de
bonnes idées et de repérer de bons programmeurs. Les projets Open Source y trouvent leur compte
aussi grâce à ce brassage d’idées, aux contacts noués et aux résultats concrets. Chaque étudiant est
suivi par un membre issu de la communauté de chaque projet qui est désigné comme mentor.

Les résultats des projets ont été et sont toujours intégrés peu après dans Joomla!. Au cours de l’année
2007, plusieurs nouveaux projets concernant Joomla! ont été ainsi fi nancés par Google.

Voici les projets concernés :

  • Extension du modèle des ensembles imbriqués grâce à des ensembles imbriqués à liaisons
    fi gées.
    Enno Klasing (mentor Louis Benton Landry). Un projet permettant d’imbriquer des catégories
    sans limite de niveaux.
  • Interface de messagerie pour diffusion. Aini Rakhmawati (mentor Mateusz Krzeszowiec).
    Permet de créer des contenus Joomla! en envoyant des courriels.
  • Intégration sémantique du Web. Charl van Niekerk (mentor Robert Schley). Production du
    code généré par Joomla! dans un format XHTML valide afi n de servir de base pour constituer
    des sites Web accessibles et avancer dans la voie du Web sémantique.
  • Géo-composant pour Joomla!. Mickael Maison (mentor Andrew Eddie). Intégration des standards géographiques tels que KML et GeoRSS pour exploiter ces données dans Joomla!, par
    exemple pour affi cher le domicile de l’utilisateur sur une carte.
  • Plugin Eclipse pour modules et composants Joomla!. Muhammad Fuad Dwi Rizki (mentor
    Laurens Vandeput). Consiste à produire un plugin Joomla! approprié à l’environnement de développement Eclipse, ce qui permet de construire des composants Joomla! de façon très confortable.
  • Composant de recommandation générale pour les contenus Joomla!. Faolan Cheslack-
    Postava (mentor Samuel Alexander Moffatt). Permet de proposer automatiquement des contenus
    par analyse du contexte et du moment.

1.4.5 Caractéristiques actuelles de Joomla!

Voici la liste résumée des caractéristiques actuelles de Joomla! :

  • code source disponible ;
  • grande base installée d’utilisateurs et de développeurs ;
  • système de gestion de workfl ow simple ;
  • système de diffusion des contenus ;
  • gestionnaire de téléchargement et la gestion des fi chiers distants ;
  • exploitation des contenus dans le format RSS ;
  • corbeille pour les contenus effacés ;
  • adresses URL compatibles avec les moteurs de recherche ;
  • gestion de bannières publicitaires ;
  • frontal et administration disponibles en de nombreuses langues ;
  • interface d'administration séparée de l’accès Web normal ;
  • langage de macros pour traiter les contenus (Mambots) ;
  • mécanisme de cache pour assurer une génération rapide des pages choisies ;
  • installation facile des modèles et composants complémentaires ;
  • système de modèles simple mais complet (HTML, CSS, PHP) ;
  • groupes d'utilisateurs hiérarchisés ;
  • statistiques de fréquentation simples ;
  • éditeur de contenus visuel (WYSIWYG) ;
  • gestion de sondages ;
  • mécanisme d’évaluation des contenus.

Vous trouverez de nombreuses extensions sur le site http://extensions.joomla.org. Citons notamment :

  • gestion de forums ;
  • gestion de galeries de photos ;
  • système de gestion documentaire ;
  • calendriers.

Et presque 2 000 autres.

1.4 Joomla! en tant que bâtiment ?

Joomla! est une sorte de boîte de construction, qui vous permet, après mise en place sur un serveur, de créer puis de faire évoluer votre site personnel. Joomla! ressemble à une maison que vous décidez de construire sur le terrain de votre choix et que vous agrandissez ensuite à votre rythme. La métaphore immobilière est donc pertinente.

Stop ! J’ai encensé la mobilité et voilà que je parle de choses immobiles ?

Ne prenez pas peur. L’immeuble que vous allez bâtir va résider physiquement quelque part (sur votre serveur), mais le monde entier pourra venir vous rendre visite quasiment à la vitesse de la lumière. Pour rendre un immeuble habitable, il faut ajouter les équipements indispensables que sont le chauffage, l’électricité et l’eau courante. Voilà d’ailleurs une raison pour faire héberger votre site Joomla! sur un serveur qui ne souffrira jamais de pannes secteur puisqu’il s’engage à une disponibilité « 24h/24 – 7j/7 ».

Comme dans une maison, Joomla! distribue l’espace en pièces : une pièce pour accueillir les visiteurs, une pour préparer les repas, une autre pour discuter, un bureau et une pièce intime que vous ne montrez qu’aux vrais amis. Certains préfèrent les espaces ouverts, de style loft, qui combinent toutes les fonctions.

Quelle que soit votre préférence en matière de distribution des espaces, il faut ensuite aménager le tout (revêtements de sol et de murs, meubles et décoration) puis faire périodiquement le ménage. Tous vos visiteurs laissent des traces pas toujours désirables.

Pour que vos visiteurs puissent trouver votre maison, il vous faut une adresse que vous ferez connaître au plus grand nombre. Mais il n’y a pas de répertoire général sur Internet ; vous devrez donc vous soucier de comment mieux faire référencer votre site.

Vous jouissez peut-être d’un jardin avec plusieurs portes d’accès : un portail principal, une entrée par une autre rue voire une porte dérobée dans un coin du jardin, réservée aux bons amis.

Ou bien vous n’êtes pas du style à construire en dur, et préférez les camping-cars, les tentes, les hôtels ou encore les résidences communautaires. Ou alors vous choisissez de louer et de ne pas vous soucier de tous ces problèmes.

Si vous reliez les phrases précédentes à votre site Web, vous devinez qu’il est essentiel de déterminer ce que vous voulez faire, qui vous êtes et comment vous désirez paraître aux yeux du monde.

On ne peut pas ne pas communiquer ! En revanche, on peut trop aisément mal communiquer et être mal compris.

Vous planifi erez donc votre site Internet avec grand soin. Réfl échissez aux textes, mais aussi aux couleurs, aux éléments interactifs (calendrier, forum) et prévoyez toujours une zone réservée aux membres.

N’oubliez pas de guider vos visiteurs, sans pour autant les contraindre. Visitez de nombreux autres sites et voyez ce qu’il en ressort.

Prenez le temps de rencontrer des personnes représentatives de vos futurs visiteurs. Vous vous féliciterez plus tard d’avoir enquêté préalablement et d’avoir recueilli leurs avis. Vous serez étonné du nombre de choses auxquelles vous n’aviez pas pensé. C’est une tactique rentable et effi cace pour trouver de nouvelles idées et éviter les plus grossières erreurs. Consacrez beaucoup d’efforts sur ces points, car ils sont déterminants pour le succès de votre présence sur le Web.

1.3 Structure fonctionnelle d’un CMS

Je vais me baser sur Joomla! pour illustrer la structure d’un système de gestion de contenu Web.

1.3.1 Frontend (Frontal) et Backend

Un système CMS se base sur le couple Frontend et Backend. Le Frontend (partie vitrine) consiste en
la page d’accueil et toutes les autres pages du site telles que les voient les visiteurs et les utilisateurs
identifiés.

Le Backend (partie arrière-boutique) contient l’interface de gestion des pages par l’administrateur.
Les activités de Backend comprennent la confi guration, la maintenance, la création des statistiques
et des nouveaux contenus. Le Backend est situé à une adresse Web différente de la page d’accueil du
site (donc du Frontend).

1.3.2 Droits d’accès

Dès que l’on parle d’administration, il faut introduire des règles pour garantir l’utilisation organisée
des ressources disponibles : ce sont les droits d’accès. Dans un CMS, toutes les personnes concernées
se voient attribuer un identifi ant (nom d’utilisateur) et un profi l d’accès y est associé. Cohabitent
ainsi des utilisateurs simplement reconnus, des créateurs et correcteurs de contenus qui ont plus de
droits et un ou plusieurs administrateurs, qui ont accès à tout. Selon le profi l de droits d’accès, la
page d’accueil du site se présente différemment ou bien l’utilisateur bénéficie d’une interface d’administration distincte de la page d’accueil.

1.3.3 Contenus

Les contenus peuvent prendre des formes très diverses : fi chiers textes, images, liens, fi chiers audio,
données extraites d’une application comme Google Maps ou une combinaison de ces éléments.
Pour que la gestion de tous ces contenus soit simplifi ée, ils sont systématiquement intégrés à des
structures d’accueil. Les textes sont ainsi répartis dans des catégories. Ces catégories consistent elles
aussi en des contenus qui doivent être administrables. Les fl ux d’informations RSS (RSS feeds) sont
devenus très populaires, d’autant que la version 7 d’Internet Explorer permet enfi n de les exploiter.

Au début 2008, plus de 75 % des internautes se servent encore de ce navigateur. Les fl ux RSS permettent
d’intégrer des données provenant de sources diverses. L’intégration, le classement, la valorisation,
l’hybridation et la mise à jour de ce genre de contenus externes vont jouer un rôle de plus en plus
important et fi niront par constituer un liant pour fondre ensemble des sites Web distincts au départ.

1.3.4 Extensions

Les composants, modules, templates et plugins sont réunis sous le terme collectif « extensions ».
Ils apportent des enrichissements fonctionnels par rapport à ce que propose le noyau de Joomla!.

1.3.5 Templates (modèles ou gabarits)

Un template est une sorte de gabarit visuel prêt à recevoir des contenus. Il détermine les couleurs, les
polices, les tailles de caractère, l’image d’arrière-plan, les espacements et la distribution des souséléments
d’une page. Il constitue donc une mise en page. Un template réunit au moins un fi chier
HTML décrivant la structure de la page et un fi chier CSS décrivant les styles d’affi chage. Un template
peut être beaucoup plus complexe et rendre (affi cher) des données de Joomla! accessibles de multiples
manières ou en autoriser le recyclage.

1.3.6 Plugins

Un plugin est un bloc de code qui vient se brancher en un point précis de l’infrastructure de Joomla!
pour en modifi er le fonctionnement. Vous pouvez par exemple utiliser un plugin dans un contenu
pour charger le contenu d’un module dans un texte. Pour pouvoir étendre la fonction de recherche
d’un site Web à un composant supplémentaire, il faut lui associer un plugin. Les plugins peuvent
parfois être vus comme une langage de macros pour Joomla!.

1.3.7 Modules

Un module est une extension du domaine des contenus de la partie utilisateur. Il permet de disposer
de nouvelles données provenant d’un composant. Les modules peuvent être mis en place à des positions
prédéfi nies dans le template. Un module lié à un composant permet de visualiser le contenu
sous un format précis ailleurs que dans le domaine des contenus du template. Par exemple, le module
des dernières infos permet d’extraire les titres des cinq derniers articles produits par les composants
de contenu et de les transmettre au template. Il existe un autre module pour déterminer le nombre
d’utilisateurs actuellement connectés et affi cher le résultat.

1.3.8 Composants

Joomla! doit être extensible pour s’adapter à l’évolution des besoins. Le terme composant désigne
dans Joomla! des extensions qui ajoutent de nouvelles fonctions et sont en général gérées par un
domaine dédié de la partie administrative de Joomla!. Les principaux composants apparus ces
derniers temps sont une boutique en ligne, une galerie de photos, une gestion de news et un forum de discussion. Les attentes actuelles en ce domaine sont notamment l’optimisation des moteurs de
recherche, la gestion des droits d’accès, les formulaires multipages et les structures de contenus
variables.

Les composants incarnent la logique de traitement de votre site. Ils affi chent les données du domaine
de contenu de votre site Web (Main Body).

1.3.9 Chaînes de production (workflows)

Une chaîne de production (workfl ow, souvent non traduit ou bien traduit en flux de travaux) est une
manière d’organiser formellement les interactions entre les processus et les personnes dans un objectif
commun. Le service Expédition d’une entreprise incarne une chaîne de production ; une recette
de gâteau en constitue une autre. Du fait qu’en général plusieurs personnes participent à la gestion
des contenus d’un système CMS, il est capital de définir de bonnes chaînes de production.
Un concept fréquemment utilisé dans ce contexte est celui de réservoir de tâches d’un utilisateur. Par
exemple, un réviseur voit s’affi cher en permanence la liste des nouveaux articles qu’il doit relire.
Après lecture, il valide (ou non) chaque article, qui apparaît alors dans la liste d’entrée du chef de
rubrique qui décide (ou non) de le placer en première page.

1.3.10 Configuration générale et charte graphique

Ce paramétrage concerne toutes les pages du site : texte du titre dans la fenêtre du navigateur, mots
clés pour les moteurs de recherche, options pour autoriser ou non l’enregistrement du visiteur sur la
page, pour rendre une page temporairement inaccessible, etc.

1.3.11 API

API est un acronyme (Application Programming Interface) anglais qui désigne une interface de
programmation. Il s’agit d’une convention stricte permettant à deux programmes d’entrer en interaction
et de dialoguer. Il est devenu indispensable de pouvoir faire interagir Joomla! avec d’autres
programmes voire même de le télécommander. Cela ouvre de tous nouveaux horizons. L’interface API constitue la passerelle entre les créations des développeurs tiers et le noyau Joomla!.

1.2 Un peu d’histoire

Pendant que le constructeur informatique Sun déclarait au cours des années 1990 : « Le réseau est
l’ordinateur », l’éditeur Microsoft maintenait son cap : « Un ordinateur personnel sous Windows sur
chaque bureau. » Le désir de Microsoft a été satisfait : il y a quasiment neuf PC sur dix sous Windows.

L’ordinateur auquel Microsoft faisait référence hébergeait un mélange de données binaires (programmes)
et de données utilisateurs (informations). Les programmes devaient être achetés et installés par
les clients, afi n de permettre d’accéder aux données utilisateurs. La suite Microsoft Offi ce a à cette
époque envahi quasiment tous les bureaux du monde.

L’ordinateur auquel Sun faisait référence était un terminal non autonome : un équipement bon
marché réunissant un clavier, un écran, une souris et un accès réseau. Les programmes et les données
étaient stockés non pas sur cette machine, mais quelque part sur le réseau.

La philosophie de Microsoft était plutôt orientée vers l’individuel alors que celle de Sun l’était vers
le collectif.

Les motivations de part et d’autre étaient non pas philanthropiques, mais commerciales. Microsoft
gagnait de l’argent en vendant des logiciels pour PC aux particuliers et aux PME, Sun vendait aux
grandes et moyennes entreprises des serveurs et calculateurs avec les logiciels appropriés.

Au milieu des années 1990 se produisit l’irruption (on pourrait presque parler d’éruption) du réseau
Internet pourtant déjà utilisé depuis les années 1960 par les chercheurs et les militaires, notamment
grâce au standard HTML (HyperText Markup Language, le langage de codage des formats
dans les pages Web), à la multiplication des serveurs Web et à la création des logiciels navigateurs
(clients Web).

Internet n’est rien d’autre qu’un ensemble de règles du jeu et de conventions auxquelles se plient
tous les équipements qui s’y connectent. L’ensemble est si bien conçu qu’il n’a fallu que quelques
années pour constituer un réseau planétaire.

L’individu n’est plus accessible s’il ne dispose pas d’une adresse de messagerie. Une entreprise sans
site Web semble dépassée, et certains clients ignorent même son existence. Le monde entier s’est rué
sur le nouveau réseau, pour faire partie de l’aventure. Des fi lms tels que Matrix sont devenus des hits
et le cauchemar du livre 1984 de George Orwell ne s’est apparemment pas réalisé.

Ceux qui avaient l’habitude d’acheter leurs programmes ont acheté des éditeurs HTML et ont construit
leurs pages Internet. Les autres ont rédigé leurs pages HTML sans outil particulier sauf l’éditeur de
texte que possède toute machine. Les agences de création Web fi rent leur apparition pour faire le
travail à la place de leurs clients.

Les deux camps souffraient du même problème : les pages HTML étaient statiques. Modifi er une page
supposait de charger la page localement dans son éditeur de texte, de la tester puis de la retransférer
sur le serveur pour la mettre à jour.

C’était non seulement inconfortable, mais des sites complexes tels que eBay ou Amazon n’auraient
pas pu voir le jour.

Dans chaque groupe furent trouvées des solutions plus ou moins satisfaisantes.

Dans le camp des individuels apparurent des programmes performants pour créer et modifi er ses
pages HTML, puis les faire renvoyer automatiquement sur le serveur. Ces pages contenaient des
éléments interactifs (compteur de visites, liens publicitaires, etc.).

Le camp des collectifs s’appropria les applets Java qui rendaient possible l’écriture d’un programme
fonctionnant sur le serveur tout en étant piloté depuis un navigateur. Cette technique a permis
l’appa rition des premiers sites de commerce électronique (ventes aux enchères, réservation de billets
d’avion).

Chaque groupe tenta de conquérir des parts de marché. Il en a résulté un marché assez stable pour
chacun, le tout animé par une incessante guerre de chapelles pour savoir quel était le meilleur système
d’exploitation (Windows ? Linux ? Mac OS X ?), ce qui poussait les éditeurs à accélérer la fréquence
de parution des nouvelles versions. Les clients s’y habituèrent en se disant que les choses n’étaient
décidément pas simples.

Mais dans un tel contexte, il existe toujours une troisième voie. Dans notre cas, l’autre approche a
pris forme dans les langages de script Open Source tels que PHP. L’auteur de PHP, Rasmus Lerdorf,
cherchait à enrichir sa page personnelle avec des éléments interactifs, et ses efforts ont donné naissance
au langage PHP. Dès le départ, ce langage était optimisé pour fonctionner en parfaite harmonie
avec la base de données relationnelle libre MySQL (régie comme PHP par la licence GNU/GPL).

Par bonheur sont apparus à la même époque le système d’exploitation libre Linux et le serveur Web
Apache. Toute l’infrastructure logicielle d’un serveur était ainsi disponible. Le poste client utilisait un
navigateur (le pionnier étant Netscape). L’acronyme LAMP (Linux, Apache, MySQL, PHP) devint
le synonyme de la présence interactive sur Internet associée à la puissance d’une base de données.

Une véritable frénésie de création vit apparaître les logiciels les plus divers pour créer des sites Web
depuis un navigateur : forums de discussion, communautés, cyberboutiques, pages de sondage, etc.
Après la partie technique incarnée par Linux et Apache pouvait enfi n surgir la partie utilisateur.

À la fi n des années 1990, la bulle spéculative Internet éclata. Soudain, on se remit à penser en termes
de commerce classique et à revenir aux bonnes vieilles méthodes.

En période de restriction économique, il en va toujours ainsi : la chasse aux économies est ouverte.
Il y avait, et il y a toujours, quantité de solutions !

Les applications PHP en activité à cette époque se comptaient par millions. Citons par exemple les
deux outils phpBB et phpMyAdmin. Le premier est devenu le standard de fait pour créer des forums
Internet ; le second est l’interface standard pour exploiter une base de données MySQL via une
interface Web.

Et le code source du langage PHP comme celui des outils environnants étant librement disponible,
il s’améliorait de plus en plus vite, grâce aux contributions de la foule d’utilisateurs et de programmeurs
qui s’en souciaient. Plus un point fonctionnel était conçu de façon ouverte, communautaire,
plus il avait de succès.

Un expert pouvait à lui seul faire économiser des sommes énormes à une entreprise en très peu de
temps.

Les pages HTML statiques étaient reléguées au panthéon de l’histoire. Tout devait dorénavant être
dynamique ! Voilà où nous en sommes maintenant depuis plusieurs années. Linux, Apache, MySQL
et PHP sont devenus des standards reconnus faisant l’objet de cursus de formation offi ciels. La
recherche d’applications PHP utilisables en milieu professionnel a alors commencé.

Voici les critères pris en compte dans une telle recherche :

  • installation simple ;
  • facilité de maintenance du code source ;
  • sécurité du code source ;
  • ergonomie (facilité d’emploi pour l’utilisateur) ;
  • facilité d’extension ;
  • facilité de prise en mains pour les nouveaux programmeurs ;
  • interfaces de programmation standardisées ;
  • coût acceptable ;
  • indépendance des fournisseurs.
  • L'énorme avantage des applications basées sur PHP est l’indépendance du matériel et du système
    d’exploitation. L’environnement LAMP existe aussi pour Windows (WAMP) et pour Mac OS
    (MAMP). Le nom générique est XAMPP.
  • Et c'est alors qu'est arrivé le fameux Joomla! qui nous intéresse ici.

1.2.1 Joomla! – d’où vient-il ?

Une société australienne nommée Miro avait conçu en 2001 un système de gestion de contenus
qu’elle avait baptisé Mambo. Elle avait décidé de diffuser ce logiciel dans les conditions Open
Source, pour que le plus grand nombre l’adopte et aide à le tester. En 2002, la société décida de
scinder Mambo en deux variantes : une commerciale et une Open Source. La variante payante a été
rebaptisée Mambo CMS ; l’autre a été rebaptisée Mambo Open Source (abrégée en MOS). À la fi n
de 2004, tous les participants au projet estimèrent d’un commun accord que MOS pouvait dorénavant
s’appeler Mambo tout court et décidèrent qu’il fallait coopérer pour assurer l’évolution de ce
CMS qui était alors celui qui progressait le plus.

Les avantages de la variante payante pour les entreprises (Mambo CMS) étaient une plus grande
sécurité ainsi que la disponibilité de la société Miro comme interlocuteur et fournisseur d’extensions
et de prestations spécifiques

La variante Open Source (Mambo) a comme avantages sa gratuité et le libre accès au code source.
De cette manière, on était sûr qu’un nombre important d’utilisateurs et de développeurs participait à
l’évolution du logiciel. Cela n’empêchait nullement une entreprise d’opter pour la variante Mambo
comme point de départ puis à partir d’elle de concevoir une solution spécifi que.

Au cours de l’année 2005, toutes les parties concernées ont réfl échi à l’opportunité de créer une
fondation afi n de garantir la pérennité et l’évolution de Mambo (la variante Open Source).

Durant l’automne 2005, tout a alors démarré : la page Web offi cielle de Mambo annonçait la naissance
de la fondation Mambo. Passé les premières heures d’enthousiasme, il apparut assez vite
évident que cette fondation avait été créée par la société Miro en Australie sans la participation effective
de l’équipe de développement au titre de membres fondateurs. Il s’ensuivit des discussions
enfl ammées sur les forums de la communauté. L’équipe de développement s’enferma quelques longs
jours dans un mutisme complet.

Peu de temps après, les développeurs se manifestèrent enfi n par une prise de position sur le site
opensourcematters.org pour annoncer qu’ils allaient prendre un conseil impartial auprès du centre
Software Freedom Law Center et qu’ils prévoyaient toujours de poursuivre le développement de
Mambo. Déjà à cette époque avait été émise l’idée de refondre le code source dans une version
améliorée de Mambo.

Comme dans un ménage en déroute, l’animosité ne fi t que croître de plus en plus vite entre la donation
Mambo pilotée par Miro (qui venait de perdre son indispensable équipe de développeurs), cette
équipe de développeurs, qui avait décidé de partir créer une nouvelle branche du logiciel et devait
bien sûr lui trouver un nouveau nom, et une communauté mondiale composée de centaines de
milliers d’utilisateurs fort énervés qui s’invectivaient en mots peu tendres dans les blogs, les forums
et les pages respectives des deux projets.

Les deux projets se sont poursuivis en parallèle. La nouvelle lignée Open Source a adopté le nom
Joomla!.

L’équipe de Joomla! a pris soin d’instituer des règles démocratiques. Lorsqu’il a été question de
choisir le logo du projet, un concours a été lancé parmi la communauté naissante. En quelques jours,
plus de 8 000 utilisateurs s’étaient inscrits sur le forum. Les projets et les résultats sont toujours
disponibles sur le site offi ciel.

Pendant ce temps, la fondation Mambo a rapidement mis en place une nouvelle équipe de développeurs.
Le 17 septembre 2005 a été lancée la version 1.0 de Joomla!.

Au niveau des développeurs tiers, c’est-à-dire des groupes de programmeurs qui créaient des composants
complémentaires pour Mambo, plusieurs projets importants ont vite basculé vers Joomla!, et
notamment Simpleboard (qui s’appelle maintenant FireBoard), DOCman et d’autres. Cela n’a fait
que renforcer la légitimité de la nouvelle lignée. Les trois lettres mos qui servaient de préfi xe dans de
nombreux noms de variables et d’identifi ants dans le code source de Mambo ont été vite remplacées
par jos.

Vous trouverez sur Internet une description détaillée du déroulement de ces opérations, mais en
langue anglaise.

Deux ans après sa fondation, Joomla! est l’un des projets Open Source les plus réputés du monde.

Au cours de ces deux années, la mise sur pied d’une nouvelle organisation a entraîné bien des débats
animés et bien des incompréhensions dues aux différences culturelles.

Pendant ce temps, le Web 2.0 apparaissait. Le contenu généré par les utilisateurs ne cessait de croître.
Le monde entier a découvert l’univers virtuel de Second Life. Le langage de programmation
Ruby et sa déclinaison Ruby on Rails ont été de plus en plus adoptés pour créer des sites Web. Les
interfaces de programmation ont pris une importance particulière.

Dans un domaine à l’évolution si rapide, la version 1.0.x de Joomla! a commencé à paraître un peu
dépassée. À cette époque il n’était pas question d’en abandonner le développement. Mais les utilisateurs
commençaient à lorgner d’un oeil triste les nouvelles capacités de systèmes comme Plone,
TYPO3, Drupal et plusieurs autres. Tous ces projets n’avaient pas à gérer l’héritage de Mambo et
pouvaient prendre en compte les nouvelles techniques directement.

Il est vrai que la version 1.0.x n’était depuis deux ans plus vraiment enrichie. Elle recevait pour
l’essentiel des correctifs de sécurité et quelques petites retouches de code. Mais faire attendre deux
ans la nouvelle version d’un logiciel n’est pas sans risque. Des mauvaises langues ont alors prétendu
que Joomla! était un projet mort. La presse spécialisée n’a pas manqué d’articles incendiaires prétendant
que l’on tenait là un bel exemple de la ruine un projet logiciel prometteur.

Mais la nouvelle version Joomla! 1.5 est vraiment un bon produit. À voir les nombreuses discussions
sur les forums et listes de diffusion, les multiples échanges de courriels et rencontres physiques, il
me semble que l’avenir de Joomla! est devenu plus brillant que jamais.

Sous un certain angle, la migration de la version 1.0.x à la version 1.5.x réclamera des efforts. En
effet les profonds remaniements du code source ne permettent pas de garantir une compatibilité
descendante complète. D’un autre côté, cette nouvelle version permet à Joomla! de faire partie des
systèmes de gestion de contenu de niveau entreprise. Le choix stratégique qui consiste à faire de
Joomla! une boîte de construction (Joomla! Framework) simplifi ant l’ajout de fonctions par les
programmeurs est une décision intelligente qui montrera sa justesse.

Il est dorénavant enfi n possible de choisir parmi plusieurs méthodes d’authentifi cation et de construire
des sites Web multilingues avec une accessibilité améliorée. La création de sites Web composites (mashup) réutilisant les données de plusieurs autres sites devient accessible à Joomla! tout comme
la création de composants à partir d’un environnement de création riche du style Eclipse.

Quant on songe au nombre de membres de la communauté, de développeurs et à la quantité d’installations
actuelles, Joomla! saura sans aucun doute répondre aux attentes dans ces différents domaines.
De nombreux fournisseurs d’accès et hébergeurs proposent déjà Joomla! préinstallé à leur client.
La nouvelle version 1.5 est suffi samment compatible avec la version 1.0.x pour qu’il n’y ait aucun
problème sérieux lors de la migration d’un site pas trop complexe.

Syndiquer le contenu