I. Concepts de base▲
I-A. Introduction▲
Risquons d'abord la métaphore suivante: vous souhaitez construire une nouvelle maison mais vous ne savez trop comment vous y prendre. Vous n'avez pas de connaissances en gros oeuvre, en électricité ou encore en décoration, mais vous en avez tellement envie de cette nouvelle maison ! Vous pourriez tout apprendre vous-même, enfiler le bleu de travail… et vous tuer à la tâche! Bon, certains y arrivent, c'est vrai.
Vous avez donc pris contact avec plusieurs maîtres d'oeuvre et l'un d'eux a particulièrement retenu votre attention: il s'occupe du gros oeuvre et vous livre une maison modulable où vous pourrez choisir vousmême l'emplacement des cloisons (pour faire autant de pièces que vous voulez), et la décoration. Il ne vous reste plus qu'à meubler.
La maison c'est votre site web, le maître d'oeuvre c'est Joomla (et c'est un bon !), le gros oeuvre c'est l'environnement de travail PHP/MySQL, les cloisons c'est précisément la modularité de Joomla (qui vous permettra notamment d'ajouter des composants et des modules à la structure de l'édifice), la décoration c'est le template (le design de votre site), quant aux meubles, vous l'aurez deviné, il s'agit du contenu même de votre site.
Et décidément, non content de vous offrir gratuitement une toute nouvelle maison, ce Joomla vous livre en plus un rez-de-chaussée habitable ! En clair, un ensemble de composants, de modules et de templates pré installés qui rendent le site fonctionnel immédiatement. Pour l'aménagement des étages, c'est à vous de jouer!
Dans cette première partie nous allons donc présenter quelques concepts de base qui aideront à mieux comprendre où nous allons mettre les pieds. Ensuite, nous rassemblons nos outils, nous préparons le terrain, et on y va!
I-B. Qu'est ce que Joomla ?▲
Joomla! est un système de gestion de contenu (en anglais, CMS, pour Content Management system) Open source sous licence GNU/GPL créé par une équipe internationale de développeurs récompensée à maintes reprises.
Joomla! est chapeauté par Open Source Matters , Inc., organisation à but non lucratif basée aux Etats- Unis dont la mission est de fournir une structure légale et financière au projet. Les statuts de l'organisation sont consultables sur http://www.opensourcematters.org
Et un CMS, c'est quoi ?
Pour faire simple, un CMS (système de gestion de contenu) est un logiciel web qui permet de créer un site internet dynamique en toute simplicité, sans connaissances techniques particulières, l'idée étant de séparer le volet technique du logiciel de la forme et du contenu qui seront eux la partie visible de l'iceberg : votre site tel qu'il sera vu par vos futurs visiteurs. Bon c'est toujours pas clair ? Prenons une bagnole ; n'importe qui est capable d'en conduire une sans pour autant être mécanicien non ? CQFD
S'il est d'abord orienté gestion de contenu, c'est-à-dire destiné à mettre en ligne des articles et des news, Joomla peut en quelques clics être " détourné " en portail, site de boutique en ligne, site communautaire, site personnel, etc., ce grâce aux centaines d'extensions disponibles sur le web.
Bon, et comme ici on n'est pas sectaire, voici un site qui recense quantité de CMS et autres logiciels de blog, groupware, forum ou encore wiki : http://www.opensourcecms.com/ . Vous pourrez tester les démos en ligne, ou, si vous avez le temps, les installer sur votre PC, ce que nous allons faire plus loin dans ce document pour Joomla!
Que se cache-t-il derrière ce nom?
Joomla! est la transcription phonétique d'un mot swahili qui signifie "tous ensemble", ou encore "en un
tout". Le choix s'est porté vers ce nom car l'intégralité de l'équipe de développement était unanime dans la
volonté de protéger les intérêts des créateurs et de la communauté. Ce nom a été choisi parmi les milliers
de propositions faites par la communauté, il a même été passé au banc d'essai par des professionnels du
marketing et des marques, convaincus eux aussi que Joomla! était le meilleur choix.
Joomla!, le nom et le logo sont protégés. Vous pouvez utiliser le logo Joomla ! sous réserve de respecter
les règles d'utilisation décrites dans le Brand Manual: http://www.joomla.org/content/view/259/70/.
Combien ça coûte ?
En tant qu'utilisateur final (particulier, association ou entreprise commerciale) il ne vous en coûtera rien d'utiliser Joomla! et/ou d'en modifier le noyau. Joomla! est un logiciel libre sous licence GNU/GPL. En aucun cas une entreprise commerciale ne peut vendre une licence d'utilisation Joomla! ou encore tout ou partie du code source. En revanche elle a tout à fait le droit de vendre une prestation basée sur Joomla! (installation, configuration, formation...) et d'en modifier le noyau pour les besoins d'un client, ou encore de vendre des extensions (composants, templates...) développés spécifiquement pour Joomla!
Et Joomla c'est qui ?
On peut distinguer 5 catégories de joomlistes (joomlers ? joomladdicts ? …) :
- Core Team : équipe officielle des développeurs du noyau Joomla. Elle se charge de maintenir et de faire évoluer Joomla!. La liste des membres est consultable sur le site officiel (http://www.joomla.org), Autour de la core team sont organisés des groupes de travail dont les missions sont entre autres choses axées sur la sécurité, les performances, l'accessibilité...
- Translation Partners : équipes de traductions officielles organisées par langue, elles ont pour mission première de fournir une traduction de l'aide en ligne de Joomla ! Par extension, ce sont souvent ces mêmes équipes qui réalisent la traduction du frontend et du backend (cf plus loin les définitions de ces deux termes) du logiciel, voire des extensions tierces. Le partenaire officiel de traduction en français est http://www.joomlafacile.com.
- Développeurs d'extensions tierces : Joomla! intègre nativement un certain nombre d'extensions, volontairement limité pour ne pas surcharger le package d'installation. L'une des grandes forces du projet Joomla c'est le nombre important d'extensions tierces mis à disposition par des développeurs amateurs ou professionnels. Galeries d'images, forums, générateurs de formulaire, ecommerce, templates... l'éventail des extensions tierces vous permettra de vous tailler un site sur mesure !
- Portails communautaires : ces sites web n'ont rien d'officiel, ils sont le plus souvent animés par des passionnés de la première heure qui n'ont d'autre ambition que de " partager " en mettant à disposition des utilisateurs finaux toutes les ressources (forums, téléchargements d'extensions et de templates, news, base de connaissance...) pour mettre en oeuvre un site motorisé par Joomla!
- Utilisateurs finaux : webmasters amateurs ou professionnels, rédacteurs..., ben là c'est vous, nous !
I-B-1. Evolution de Joomla!▲
I-B-1-a. D'abord un peu d'histoire▲
En 2000, la société Miro développe et commercialise le CMS Mambo. Peu de temps après, cette société australienne met à disposition du public une version open source sous licence GPL. Parallèlement, Miro continue de développer la version payante, en tirant tous les bénéfices du développement et de la popularité de la version Open source.
Début 2005, Miro décide de renommer la version payante de Mambo en Jango. Mambo version open source continue de s'améliorer et devient l'un des CMS les plus puissants et les plus populaires du web. Miro assure le parrainage structurel au sein d'un comité directeur (Mambo Steering Comitee, MSC) et en mettant à disposition de la Core team (équipe de bénévoles en charge du développement de la version Open source) une infrastructure technique (serveurs hébergeant l'espace de développement, CVS, forums, sites officiels).
En août 2005, suite à un désaccord profond sur la conduite du projet entre la société Miro d'une part et la core team d'autre part, cette dernière fait sécession et crée le projet Joomla ! Dans leurs versions actuelles, Mambo (4.5.x) et Joomla (1.0.x) sont deux CMS dont la parenté est évidente, tant au niveau de l'interface que du code source. Les développeurs qui ont créé le projet Joomla! sont ceux là même qui ont porté Mambo jusqu'à la version 4.5.3. La plupart des extensions (composants, modules, mambots, templates) fonctionne encore indifféremment sur l'un ou l'autre CMS. Mais Joomla! et Mambo ayant désormais chacun leur équipe de développement, les deux "produits" vont inévitablement emprunter des voies différentes. L'interopérabilité risque donc de disparaître très prochainement.
Sans tomber dans le prosélytisme, force est de constater que Joomla! est un projet très actif: pas moins de
12 versions de maintenance corrigeant bugs et failles de sécurité entre septembre 2005 et août. 2006,
contre une seule pour Mambo. La majorité des grands portails internationaux a adhéré au discours de la
Core Team Joomla!
Si vous hésitez entre Joomla! et Mambo, testez les deux! Si vous souhaitez passer de Mambo et Joomla!,
n'attendez pas que le trou se creuse...
I-B-1-b. Versionning▲
Les numéros de version suivent une convention de type X.Y.Z (par exemple 1.0.12) où:
- X = Numéro majeur - Changement important dans le code source de Joomla!. L'incrémentation de ce numéro peut introduire une incompatibilité avec les versions inférieures (par exemple, Joomla! 2.0.0 ne sera peut-être pas compatible avec Joomla! 1.0.12).
- Y = Numéro mineur - Changement significatif en termes de fonctionnalités et d'architecture avec un risque d'incompatibilité des versions inférieures modéré à haut.
- Z = Numéro de stabilité (ou maintenance) - Résolution de bugs (sécurité ou fonctionnels) et, occasionnellement, introduction de légères améliorations fonctionnelles. La compatibilité avec les versions inférieures est totale.
A la date de publication de ce document, après un an d'existence, pas moins de 11 versions de maintenance Joomla! (1.0.0 à 1.0.12) se sont succédées.
I-B-1-c. Roadmap▲
En informatique, un roadmap est une feuille de route qui se présente généralement sous forme de tableau où sont annoncés les dates de sortie de logiciels et de matériels. Le roadmap Joomla! est défini et mis à jour par la Core Team. On peut par exemple y lire que la date de sortie de la prochaine version de Joomla! (1.5) est TBA (To Be Announced), comprenez par là, quand elle sera prête! Rappelez vous que les développeurs du code source Joomla! sont des bénévoles qui cumulent pour la plupart cette activité en plus d'une activité professionnelle habituelle.
Ci-dessous la traduction du roadmap Joomla! à la date de rédaction de ce document:
Version | Date | Commentaires |
---|---|---|
Joomla! 1.0.0 | 15/09/05 | Première version stable de Joomla! sur la base de Mambo 4.5.2.3 Correction de bugs et patches de sécurité, plusieurs additions aux code source [Ne pas utiliser cette version - Menace de sécurité vulnérable à critique] |
Joomla! 1.0.1 | 21/09/05 | Version de stabilité [Ne pas utiliser cette version - Menace de sécurité vulnérable à critique] |
Joomla! 1.0.2 | 02/10/05 | Version de stabilité [Ne pas utiliser cette version - Menace de sécurité vulnérable à critique] |
Joomla! 1.0.3 | 14/10/05 | Version de sécurité [Ne pas utiliser cette version - Menace de sécurité vulnérable à critique] |
Joomla! 1.0.4 | 21/11/05 | Version de sécurité |
Joomla! 1.0.5 | 24/12/05 | Version de stabilité |
Joomla! 1.0.6 | 15/01/06 | Version de sécurité [Ne pas utiliser cette version - Menace de sécurité vulnérable à critique] |
Joomla! 1.0.7 | 15/01/06 | Version corrigeant un bug critique de la 1.0.6 |
Joomla! 1.0.8 | 26/02/06 | Version corrigeant des failles de sécurité |
Joomla! 1.0.9 | 05/06/06 | Version de stabilité |
Joomla! 1.0.10 | 26/06/06 | Version corrigeant des failles de sécurité |
Joomla! 1.0.11 | 28/08/06 | Correctifs de Bugs/Sécurité |
Joomla! 1.5 | TBA | Internationalisation Support UTF-8 Plugins utilisateur Préparation du terrain pour le support de plusieurs types de bases de données Couche FTP Révision du framework Joomla! Préparation pour l'utilisabilité et l'accessibilité Amélioration du cache Séparation des couches logiques et présentation |
I-B-2. La prochaine version de Joomla!▲
I-B-2-a. Le choix du numéro de version▲
Si vous avez bien lu le roadmap ci-dessus, vous aurez constaté que nous allons passer directement de Joomla! 1.0 à Joomla! 1.5, sans passer par les versions intermédiaires (1.1, 1.2, ...). Une explication s'impose non?
L'importance des changements réalisés sur le noyau Joomla! a rendu l'incrément (1.0 vers 1.1) non justifié au regard du travail effectué. En dehors de quelques améliorations techniques et cosmétiques Joomla! 1.0 était dans sa structure (framework) et son code un CMS très proche de Mambo. Avec une refonte complète du code et un nouveau framework, Joomla! 1.5 marquera certainement la naissance de Joomla! en tant que CMS à part entière.
La version à venir est bien plus qu'une mise à jour mineure, il s'agit d'un refonte complète du code qui permet toutefois d'assurer le haut niveau de compatibilité propre aux versions mineures.
I-B-2-b. Elle est où ?▲
Joomla! 1.5 est en cours de développement, mais vous souhaitez peut-être avoir un aperçu des nouveautés techniques et de la prise en main de cette prochaine mouture. Un package nightly build (mis à jour toutes les nuits) est téléchargeable sur le site officiel à cette adresse: http://dev.joomla.org/content/view/17/60/ .
ATTENTION: à la date de rédaction de ce document, Joomla! 1.5 est toujours en version Beta. Autrement dit, il vous est fortement déconseillé d'utiliser cette version sur un site de production, non seulement car elle n'est pas entièrement débuguée, mais aussi car nombre d'extensions risque de présenter des incompatibilités bloquantes. Donc, à utiliser sur un site de test uniquement!
I-B-2-c. Avant-goût en images▲
I-C. Site statique vs site dynamique▲
Un site statique est généralement un ensemble de pages «pré formées» (fichiers HTML) stockées sur un
serveur Web. Aucun traitement n'est effectué du côté du serveur, qui ne fait qu'envoyer un ensemble de
fichiers (HTML, images) au navigateur de l'utilisateur final.
Le contenu d'un site dit statique est codé en dur dans les pages HTML, où l'on pourra trouver pêle-mêle
du code HTML, du javascript, du flash... Autant dire que la mise à jour s'annonce délicate voire périlleuse
pour qui n'a pas quelques notions de base en HTML. Certes, il existe des éditeurs HTML, il n'en reste pas
moins que la maintenance d'un tel site est coûteuse en temps et peu flexible sur de gros sites; pour ajouter
un lien de navigation, il faudra par exemple éditer plusieurs fichiers HTML du site. Pour des sites de
quelques dizaines de page, le statique conviendra tout à fait.
Un site dynamique est généralement associé au couple PHP/MySQL, sur lequel s'appuie bon nombre de
CMS. Le contenu du site est désormais stocké dans une base de données (MySQL par exemple), il est
donc dissocié de la «présentation», c'est à dire la partie du code en charge de la restitution des données
dans le navigateur de l'utilisateur final.
Le serveur Web reçoit une requête HTTP émise par le visiteur, il interroge la base de données puis
construit une page de résultat qu'il restitue au visiteur via le navigateur.
La page restituée pourra être différente en fonction de l'utilisateur connecté sur le site (accès autorisé ou
pas à certaines parties du site par exemple). Le contenu du site pourra être mis à jour dynamiquement; par
exemple, pour une page listant les articles de votre site, vous n'aurez à pas ajouter manuellement un lien
vers un article fraîchement créé. Tout ce traitement est effectué par le serveur Web.
Vous l'aurez compris, avec Joomla! votre site sera dynamique!
I-D. PHP/MySQL▲
Prenons une simple tableau ; en première ligne on trouve ce qu'on appelle des champs (Nom, Prénom, Email…), les lignes suivantes s'appellent des enregistrements, le tout formant une table. Une base de données MySQL est une table ou plus souvent un ensemble de tables qui permettent de stocker des informations (ici une liste d'utilisateurs mais il peut s'agir de n'importe quel autre type d'information).
Vous connaissiez peut-être Oracle ou encore Microsoft SQL, et bien MySQL fonctionne sur le même principe à cette différence près qu'il est gratuit, et qu'il est le plus souvent utilisé en environnement Web. Et PHP dans tout ça ? Et bien PHP est un langage de programmation qui va permettre d'aller interroger cette table (on dit aussi effectuer une requête) ou modifier (en ajout, édition ou suppression) son contenu, via des morceaux de scripts intégrés à des pages web. Toute cette cuisine se fait directement sur le serveur qui héberge votre site.
Et comment on fait ça quand on n'y connaît rien ? On ne fait rien ! Joomla s'occupe de tout (ou presque), de la création des tables lors de l'installation, jusqu'au moindre bout de code qui va par exemple permettre d'afficher sur une page web la liste des articles que vous aurez écrits.
I-E. HTML/XHTML, CSS et W3C▲
Autant vous pourrez très bien vous en sortir dans l'univers de Joomla sans connaissances en PHP/MySQL, autant les connaissances en HTML/XHTML et CSS s'avèreront très vite indispensables si vous souhaitez personnaliser l'apparence de votre site (le template). Rien d'insurmontable toutefois, vous trouverez en librairie et essentiellement sur le web toutes les ressources nécessaires (tutoriaux, documentation, exemples) pour acquérir les rudiments du HTML/XHTML et du CSS.
Le HTML est un langage «balisé» qui permet de mettre en forme des informations sur une page web. Vous souhaitez par exemple afficher un mot en gras sur une page web, pour ce faire vous devrez insérer ce mot entre les balises <b></b>. Vous souhaitez par ailleurs structurer l'affichage de votre page sous forme de tableau, le HTML vous permettra de le faire à l'aide des balises <table><tr><td></td></tr></table>.
Le langage XHTML est la nouvelle norme du W3C pour la conception de pages Web. Il s'agit en fait d'un encodage plus stricte du langage HTML, s'appuyant sur les spécifications du XML. Pour être valides XHTML, vos pages Web devront désormais respecter ces quelques règles:
- Le document doit être ouvert avec un DOCTYPE et un espace de nommage (namespace)
- Le document doit comporter au minimum les éléments de structure html, head et body.
- Les balises doivent être écrites en minuscules
- La valeur des attributs doit toujours être écrites entre des guillemets, y compris pour des valeurs numériques
- Les balises d'images IMG doivent toujours comporter l'attribut alt pour le texte alternatif.
- A toute balise d'ouverture doit correspondre une balise de fermeture.
- Les balises uniques doivent également être refermées.
- Les balises doivent être correctement imbriquées.
- Les notations compactes ou raccourcies dans les attributs ne doivent pas être utilisées.
- L'attribut ID sera préféré à l'attribut NAME pour identifier les éléments A, APPLET, FRAME, IFRAME, IMG, et MAP.
Bon, si vous n'avez pas tout compris, pas d'affolement, vous pourrez quand même continuer l'aventure Joomla! Vous trouverez toutes sortes d'informations complémentaires sur le web et notamment sur l'excellent http://openweb.eu.org .
Le CSS est un langage qui permet de définir et de contrôler les styles d'affichage de toutes les pages web
d'un site depuis un seul fichier : la feuille de style. Sans feuille de style il faudrait par exemple définir
pour chaque page d'un site que je souhaite que les liens hypertextes passent en couleur jaune et en
souligné lorsqu'ils sont survolés… Que se passe t-il si le lendemain vous décidez finalement que les liens
survolés doivent désormais passer au vert caca d'oie ? Eh bien il faut rééditer toutes les pages web de
votre site.., pas très pratique. Tandis que si nous précisons pour chaque page web du site l'emplacement et
le nom de la feuille de style qui sera utilisée, nous faisons la modification dans la feuille de style et elle
s'applique automatiquement à toutes les pages web du site.
Joomla utilise seulement 2 fichiers pour gérer le design d'un site :
- un fichier qui contient entre autres choses du code HTML afin de structurer les éléments de la page web à afficher, par exemple 1 colonne de gauche pour afficher les menus de gauche, 1 colonne centrale pour afficher le corps de la page et une colonne de droite pour éventuellement afficher d'autres menus.
- une feuille de style unique pour tout votre site !
Le W3C (World Wide Web Consortium, http://www.w3.org) est une organisation internationale fondée en 1994 qui se propose de définir et de proposer des normes (spécifications ou recommandations) techniques afin de standardiser les technologies et protocoles utilisés sur le Web.
Si ses premières recommandations concernaient les normes de présentation du langage HTML, sa mission
s'est ensuite élargie à d'autres technologies (XML, XHTML, XSL, CSS...) ainsi qu'aux champs liés à
l'interaction entre le Web et ses utilisateurs (accessibilité, utilisabilité, mobilité...).
Le W3C est composé d'environ 450 membres (sociétés commerciales, fondations, universités...) dont la
liste est consultable à cette adresse: http://www.w3.org/Consortium/Member/List. On y trouve pêle-mêle
Google, Inc, la Fondation Mozilla ou les plus inattendus France Telecom et Microsoft Corp,. !!
Quel est le rapport avec Joomla! ? Et bien en tant que webmaster, vous devenez acteur du web non? Alors autant se conformer tout de suite aux préconisations de nos experts du W3C! Vous pourrez vous amusez (ou pleurez) en passant par exemple votre site au W3C Validator,
I-F. Installation locale vs. installation distante▲
Une installation locale vous permettra :
- D'installer Joomla sur votre PC, eh oui c'est possible ! Comment ? c'est justement ce que nous allons détailler dans la suite du document
- De vous faire la main en toute tranquillité, à la maison, sans nécessité d'être connecté à Internet
- De gérer un environnement de travail que vous maîtrisez complètement ; vous ne dépendez pas d'un hébergeur, c'est vous le patron ! Vous pouvez bricoler, tester et même torturer votre site en toute impunité ! Si plus rien ne marche, ce n'est pas grave, on efface tout et on recommence.
Une installation distante vous permettra :
- De mettre votre site en ligne, sur Internet ; pour cela il vous faudra un hébergeur
- De le rendre visible par des millions d'internautes ; ça donne des frissons non ?
- Enfin de frimer auprès des collègues de bureau, et cela sera tout à fait légitime au vu des heures que vous aurez passées à créer votre site.
A priori, si vous avez réussi à vous procurer ce document c'est que vous êtes déjà équipé d'un PC et
d'une connexion Internet, c'est un bon début !
Nous nous orienterons donc d'abord vers une installation de Joomla en local, histoire de se mettre en
jambe et de maîtriser la bête !