Fedora-Fr v5, étude de cas d’un site sous eZ Publish & eZ Flow

eZ Publish

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.

illustration_ez_fedora-fr.png

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).

Structure des sites Fedora-Fr

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« .

Les classes dans Fedora-Fr

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…

Exemple de global layout

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é.

Édition d'une classe avec eZFlow

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.

Le nuage de tags du planet de Fedora-Fr

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.

La structure du planet de Fedora-Fr

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.

Google Custom Search Engine

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

Mon Fedora-Fr

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).

CSS Sprites Forums

CSS Sprites eZ Publish

Commentaires

Nicolas

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.

Damien

''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."

tient tient elles me disent quelque chose ces 3 extensions ;-)

llaumgui

Oui, j'espère même qu'admin2pp va être intégré à eZ maintenant que tu bosse chez eux ;-).
Pour eZFeedParse, je le trouve mieux qu'eZFlow pour certain truc
eZClassList, c'est des fois le seul moyen d'y voir clair dans ses objets

Les commentaires pour ce poste sont fermés.

Réseaux sociaux