Parmi les milliers d'extensions Joomla! qui existent et qui constituent l'architecture technologique de votre projet web, nos experts Joomla! ont sélectionné un petit nombre d'entre-elles que nous réutilisons dans la quasi totalité de nos projets.
Si la démarche classique d'un projet Joomla! est de chercher les extensions existantes (plugins, composants ou modules) sur la JED (Joomla Extension Directory, en anglais) pour couvrir l'ensemble des spécifications du cahier des charges du projet, cette approche rencontre vite ses limites avec des projets plus volumineux où les fonctions spécifiques demandées ne peuvent plus être réalisées par le simple ajout de composants tout faits. Il en résulte souvent des hacks de ces extensions.... quand ce n'est pas le cahier des charges lui-même qu'on essaye de tordre pour coller aux extensions!
Par ailleurs l'assemblage d'extensions hétéroclites ne donne que des interfaces très disparates avec des fonctions inutiles qu'il faut faire oublier au client. La qualité du produit final en pâtit. Enfin d'un point de vue sécurité et performances, il va sans dire que ce château de carte ne peut être que très mauvais.
C'est pourquoi nous avons opté depuis plusieurs années de travailler avec Joomla! autour d'une seule extension (ou presque) qui remplacerait la quasi totalité des autres extensions qu'on téléchargeait au paravent. C'est notre approche CCK avec SEBLOD qui permet de remplacer toutes les composants qui ajoutaient des types de contenus aux articles standards comme (entre autres):
L'architecture du projet Joomla! qui en résulte est une architecture minimaliste avec:
Au final nous avons retenu (en plus du CCK Seblod et du Framework de template Warp):
Souvent les extensions Joomla! servent à autre chose que d'apporter de nouveaux types de contenus en plus des articles. Ils apportent des fonctions transverses comme la géolocalisation, la réécriture des urls, la recherche pour ne citer que ceux-la. A chaque fois il faut installer l'extension mais aussi les plugins de chaque composant pour le faire fonctionner avec la nouvelle extension, si ce plugin existe. Le résultat est évidemment assez hasardeux et lourd.
Avec l'utilisation d'un CCK qui utilise les articles Joomla et les étend avec des champs supplémentaires, toutes ces extensions deviennent inutiles. La géolocalisation utilise un template googleMap (par exemple) qui localise tous les contenus (en fait des articles Joomla!) dynamiquement. Une fois que tous les contenus du site ne sont que des articles étendus, on peut utiliser le routeur SEO de Joomla! sans extension supplémentaire. Même chose pour la recherche avancée qui ne connaît que les articles Joomla... soit exactement ce que nous manipulons.
Au delà des composants, les templates
Enfin beaucoup d'entre nous téléchargions des modules de sliders ou d'animations en tout genre quand un effet nous paraissait intéressant pour notre projet. Cependant ces modules ne fontionnent au mieux qu'avec les articles Joomla de base, et rarement avec les contenus issus des autres extensions (documents, évènements, élément d'annuaire etc...) Avec un CCK comme Seblod toutes ces extensions deviennent caduques car tous les contenus sont des super articles Joomla! et il suffit de définir des templates de liste de contenus Seblod agrémentés d'animation CSS3 ou Javascript qu'on aura trouvé.
En effet un slider, une carte GoogleMap, une vue calendrier, tous ne sont que des listes de contenus selon un affichage (un template) particulier. Travailler avec un CCK permet de réduire considérablement le nombre d'extensions grâce à l'unification du modèle de base de données.
On obtient au final des affichages bien plus personnalisés et qui exploitent n'importe quel type de contenu du site.