Rappelez-vous, il y a de cela 3 ans, Fedora-Fr passait sous eZ Publish pour les sous-domaines de portail et planet. Récemment nous avons entrepris une grosse refonte graphique de Fedora-Fr sous le nom de code « Fedora-Fr v5« . L’occasion de revenir sur mon article précédent afin de converser sur les évolutions de notre implémentation du CMS eZ Publish.
eZFluxBB
La gestion des utilisateurs de Fedora-Fr est toujours confiée à FluxBB, notre logiciel de forums. C’est encore plus vrai que via notre application Gauffr, ce sont les informations issues de FluxBB qui sont utilisées par toutes les autres applications. eZ Publish utilise donc le connecteur eZFluxBB afin de récupérer les différentes informations (utilisateurs, statistiques, news, derniers topics, etc…) issues des forums.
Ce qui a le plus évolué c’est que le connecteur utilise à présent eZFlow et propose un ensemble de blocs pour cette extension portail d’eZ System.
Structure eZ mise en place sur Fedora-Fr
Les extensions
La structure a quelque peu évolué par rapport à mon précédent article.
On est toujours dans une architecture classique en eZ Publish, à savoir : 1 site = 1 extension. Mais en plus de l’extension dite socle (permettant de regrouper certains designs, les traductions et certains paramètres propres à tous les sites de Fedora-Fr), j’ai rajouté une extension de type socle_frontend regroupant l’ensemble des informations propres aux sites frontaux (notamment le fichier override.ini.append.php).
Puisqu’on parle d’extensions, il est à noter que toutes les extensions créées pour les besoins de Fedora-Fr sont publiées sous licence GPLv2 :
- eZFluxBB : connecteur eZ Publish / FluxBB.
- eZGauffr : connecteur eZ Publish / Gauffr.
- eZPlanet : gestion du planet avec notamment la tache planifiée qui va chercher les billets à partir des Flux renseignés dans le profil des membres.
- eZTidy : implémentation de Tidy dans eZ Publish
- leZRSS : amélioration de la fonction RSS native d’eZ Publish utilisant le système de template.
- leZToolBox : ma boite à outils.
En plus de ces extensions, la plateforme utilise les composants officiels ci-dessous :
- eZFlow : gestion des fonctionnalités de portail.
- eZIE : éditeur d’image en ligne.
- eZJSCore : framework JS/Ajax.
- eZMultiIpload : upload multiple
- eZOE : éditeur WYSIWYG.
- eZWebin : dépendance d’eZFlow
Pour les extensions third party nous utilisons les suivantes :
- admin2pp : amélioration de l’interface d’administration.
- eZClassList : interface pour filtrer les objets eZ par type de contenu.
- eZFeedParse : parseur de flux RSS.
Les classes
Les classes ont évolué avec le temps afin d’intégrer eZFlow et le datatype « page« .
Pour la petite histoire le système de « global layout » n’a été introduit qu’avec la version 5 de Fedora-Fr, avant il fallait à chaque fois se retaper toute la colonne pour chaque page…
On notera également que pour la colonne de droite, celle-ci est facultative, si elle est vide alors c’est le « global layout » qui est utilisé.
Les différents sites de l’instance eZ Publish
Au www et planet dont j’avais parlé précédemment se sont rajoutés 2 nouveaux sous-domaines gérés par eZ Publish :
- recherche.fedora-fr.org : Moteur de recherche globale sur tout le domaine Fedora-Fr
- mon.fedora-fr.org : Système de page personnalisable
Le planet
Le planet a subit quelques évolutions avec la v5. J’ai notamment publié une nouvelle version de mon extension eZPlanet qui permet à présent de gérer les tags multiples. Une fois les billets tagués, il devenait évident de mettre en place un nuage de tags.
La structure du planet a elle aussi beaucoup changé. Suite à une remarque de Damien, je suis passé d’une structure où tous les billets étaient dans un même nœud à une structure où tous les billets sont fils de l’auteur. Ce qui me permet de pouvoir rapidement supprimer tous les articles d’un même auteur simplement en masquant ce dernier.
Recherche globale
Le sous-domaine recherche n’est qu’une page eZFlow avec un bloc implémentant le service de Google : Google Custom Search engine. Actuellement en bêta, ce service a pour vocation de remplacer l’API Google Web Search, à présent dépréciée.
Mon Fedora-Fr
Mon Fedora-Fr est une page d’accueil personnalisable reprenant les informations autours de Fedora et de Fedora-Fr. C’est une page inspirée des Netvibes ou iGoogle utilisant jQuery et jQueryUI dont notamment le composant sortable-portlets.
Ce site est actuellement en version alpha et devrait s’enrichir de fonctionnalités ainsi que de widgets. Il devrait également bientôt permettre de sauvegarder/charger ses préférences en base de données. Comme le site est assez lié au choix technologiques de Fedora-Fr, je ne pense pas en faire une extension eZ Publish. Cependant lorsque tout sera fini je ne manquerai pas de publier le code et d’expliquer le bouzin dans un billet dédié. Pour rappel les contraintes techniques sont :
- Cache statique,
- 0 requête MySQL,
- Pas ou peu d’appel Ajax,
- Base membres issue de FluxBB
Choix technologiques
Cache statique
Fedora-Fr utilise toujours massivement le cache statique. Je ne reviendrai donc pas dessus.
Bye bye Mootools
Depuis le passage à eZ Publish 4.3, j’ai dû me résoudre à migrer de MooTools vers jQuery, l’un des framework JavaScript retenu par eZ System et bien mieux intégré à eZ Publish via l’extension eZJSCore.
CSS Sprites
Fedora-Fr v5 a été l’occasion pour optimiser encore plus le site en adoptant notamment la technique du CSS Sprites. C’est un peu galère au début mais, en plus de diminuer le nombre de requêtes HTTP, ça évite de faire des preloads afin de contrer les effets de clipping sur les roll-over (les boutons du forum par exemple).
De Nicolas le 30 mars 2011
Merci Guillaume pour cette présentation for intéressante. Une très belle intégration d'eZ Publish !
Et quel plaisir de voir cette belle cohésion de solutions open-source.