Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : eZ Publish

eZPlanet 1.0.0

Guillaume Kulakowski

Cela fait déjà plusieurs années que nous nous servons d'eZ Publish sur Fedora-Fr pour gérer notre planet. Le code de l'extension utilisée était même déjà disponible mais je n'avais pas encore pris le temps de faire une première release officielle. C'est donc maintenant chose faite !

Mais que fait eZPlanet ? eZPlanet permet de gérer à partir d'eZ Publish un planet. Le cronjob planet-import.php est donc un fork du cron rssimport.php d'eZ Publish mais prenant les informations dans les comptes utilisateurs plutôt que dans le module RSS. Comme je n'ai pas la main sur le code HTML saisie par les contributeurs du planet, les billets passent par l'un de mes autres modules (eZTidy) avant d'être stockés en base.

Comme d'habitude c'est téléchargeable un peu partout :

leZRSS 1.0.0, enfin !

Guillaume Kulakowski

Après plus de 2 années à incuber et après avoir rejoint la forge d'eZ System, j'ai enfin décidé de publier une première version stable de leZRSS.

Cette extension pour eZ Publish apporte les fonctionnalités suivantes :

Comme d'habitude c'est téléchargeable un peu partout :

eZFluxBB 1.3

Guillaume Kulakowski

Je viens de publier la version 1.3 d'eZFluxBB l'extension permettant de lier votre forum FluxBB à votre CMS eZ Publish.

Mais quelles sont les nouveautés ?

  • Ajout d'une fonction eZJSCoreCallServer pour récupérer les informations sur l'utilisateur courant,
  • Ajout d'un bloc eZFlow pour afficher les informations de connexion.

Autres nouveautés invisibles pour l'utilisateur

eZFluxBB 1.3 marque la fin du support de PunBB/FluxBB 1.2. Jusquà présent lorsque vous configuriez eZFluxBB, vous instanciez au besoin la classe eZFluxBB12 ou eZFluxBB14 en fonction de votre version, toutes les 2 héritant de la classe eZFluxBB.

Le problème est que de plus en plus de différences apparaissent dans les versions mineures (cookie différent, etc...). J'ai donc arrêté d'utiliser cette façon de faire et j'ai maintenant recours à des appels à version_compare au sein du code.

Mais l'autre nouveauté est l'utilisation d'un fichier *.ini pour toutes les requêtes MySQL ! Cette façon de procéder quelque peu étrange permet :

  • De modifier une requête uniquement dans le fichier ini en fonction de la version de FluxBB,
  • de pouvoir modifier une requête sans toucher au core de l'extension. Utile si vous avez des mods comme les sondages ou les messages privés sur votre forums.

A noter également que cette version est issue du travail d'intégration continue que j'ai récemment mis en place pour tous mes projets. L'archive est dailleurs générées à partir de phing.

Comme d'habitude c'est téléchargeable sur la forge de projet d'eZ Systems :

IPB for Drupal: un connecteur IP.Board / Drupal

Guillaume Kulakowski

A l'occasion du projet de refonte de Scénario-Paintball sous Drupal, je suis en train de développer un connecteur IPB / Drupal.

Pourquoi IP.Board ?

SPB tourne maintenant depuis plusieurs années sous IP.Board. C'est malheureusement un logiciel propriétaire mais c'est aussi un forum terriblement efficace dont je possède une licence à vie (qui n'existe plus maintenant mais qui me permet de ne pas payer la redevance annuelle).

Le problème c'est que SPB ce n'est pas qu'un forum, c'est également un site. A chaque montée de version d'IPB, il faut trouver un portail et refaire pas mal de développements pour adapter les éléments hors forums à la nouvelle version.

J'ai donc décidé de migrer le portail de SPB sous un CMS et de ne maintenir que le connecteur, un peu à la manière de Fedora-Fr sous FluxBB & eZ Publish connectés via eZFluxBB.

Pourquoi Drupal ?

Pour le cas de SPB, les avantages par rapport à une solution comme eZ Publish sont nombreux :

  • Possibilité nativement pour les membres de personnaliser l'affichage des blocs.
  • Possibilité nativement pour les membres de créer des blogs (l'extension IP.Blog existe pour IP.Board mais est soumise à une redevance annuelle).
  • Comme le site fait pas mal appel à la base de membres, j'ai préféré Drupal qui stocke les membres comme une entité à part contrairement à eZ Publish qui les stocke comme des objets classiques. Le problème intervient lorsqu'on possède un site à faible contenu avec une grosse base d'utilisateur, on fait vite grimper les ressources nécessaires juste pour les membres.
  • Après presque 7 années de pratique d'eZ Publish, je commence à faire le tour et j'avais envie de profiter de SPB pour varier les plaisirs..

Où en est le projet ?

Pour le moment l'extension en est à ses balbutiements :

  • Interface de configuration depuis le back-office Drupal.
  • Utilisation du couple login / mot de passe pour se connecter au site Drupal.
  • La session IP.Board est récupérée dans Drupal pour connecter automatiquement l'utilisateur.
  • Création des utilisateurs Drupal à la volée lors de leur connexion.
  • Bloc de statistiques.

A venir :

  • Exploitation des données sur les forums et topics.

Bref, c'est un projet en cours de développement et sous licence GPL v2 :

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

Guillaume Kulakowski

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

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 javais 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

eZ Publish + FluxBB = eZFluxBB 1.1.0

Guillaume Kulakowski

Ceux qui suivent l'actualité de fedora-fr l'auront remarqué : nous sommes passés sous la branche 1.4 du logiciel de forum FluxBB. L'occasion pour moi de mettre à jour mon extension pour eZ Publish permettant d'y intégrer FluxBB : eZFluxBB.

Au sommaire des nouveautés :

  • Bien entendu le support de la branche 1.4 de FluxBB.
  • Tout comme Fedora-Fr qui a fait dernièrement le tournant vers eZFlow, eZFluxBB intègre à présent la plupart de ses fonctionnalités au travers de block eZFlow.

Voila, c'est visible sur la home de Fedora-Fr, des exemples sont également visibles dans la galerie du projet. Le projet est hébergé sur la forge d'eZ System et c'est donc tout naturellement là-bas que vous pourrez télécharger la version 1.1.

eZ Publish + FluxBB = eZFluxBB 1.1.0

Guillaume Kulakowski

Ceux qui suivent l'actualité de fedora-fr l'auront remarqué : nous sommes passés sous la branche 1.4 du logiciel de forum FluxBB. L'occasion pour moi de mettre à jour mon extension pour eZ Publish permettant d'y intégrer FluxBB : eZFluxBB.

Au sommaire des nouveautés :

  • Bien entendu le support de la branche 1.4 de FluxBB.
  • Tout comme Fedora-Fr qui a fait dernièrement le tournant vers eZFlow, eZFluxBB intègre à présent la plupart de ses fonctionnalités au travers de block eZFlow.

Voila, c'est visible sur la home de Fedora-Fr, des exemples sont également visibles dans la galerie du projet. Le projet est hébergé sur la forge d'eZ System et c'est donc tout naturellement là-bas que vous pourrez télécharger la version 1.1.

Retour sur la journée eZ parisienne du mardi 21 septembre 2010

Guillaume Kulakowski

Mardi dernier se tenait à l'espace Kiron la journée eZ. L'occasion pour se rencontrer entre clients, experts et éditeurs. A travers ce billet, je vais tenter de vous en faire un rapide résumé pas forcément d'en l'ordre chronologique.

Présentation du nouveau modèle de distribution

Il n'est jamais aisé pour une société de scinder son unique produit en 2 :

  • une version communautaire (généralement appelée « projet »),
  • et une version enterprise (appelée produit).

Il y a de très bons exemples de réussite, je ne citerai que Fedora / Red Hat, mais aussi (et surtout) de moins bon. Bref les commerciaux/dirigeants se sont efforcés de nous dire que cette scission serait une bonne chose, que l'innovation serait portée par la version communautaire et que la version enterprise subirait plus de QA.

Pour faire simple :

  • Le projet communautaire portera l'innovation. C'est là que les développeurs d'eZ System ainsi que la communauté apporteront les nouvelles fonctionnalités.
  • Le produit enterprise quant à lui n'aura pas de développeur mais juste des équipes QA. Il portera la stabilité. C'est lui qui recevra les patchs correctifs.

Remarque intéressante, contrairement à Fedora / Red Hat, le cycle de vie d'eZ Publish community et enterprise sera le même : une version tous les 6 mois. Je trouve cela très ambitieux quand on voit que l'innovation de Fedora met 2 ans à être stabilisée dans Red Hat. eZ Publish n'est pas une distribution Linux mais je pense que 2 release communautaires pour 1 release enterprise serait plus raisonnable. Surtout que personnellement généralement je conseille à mes client de sauter une version et de ne faire qu'une mise à jour sur 2.

Personnellement, je suis curieux de voir comment les choses vont évoluer mais je pense que cette scission peut apporter de bonnes choses.

Lors de cette présentation des teasers sur la future homepage d'eZ.no nous ont été présentés. L'idée est de marquer encore plus la différence entre le site communautaire (share.ez.no) et le site plus pro (ez.no).

De SVN à Git

Autre point, le passage vers GitHub. Les sources d'eZ Publish ne seront plus disponible via leur SVN mais via GIT (un autre VCS) à partir de la forge GitHub. Pour ceux qui ne connaissent pas GitHub, il s'agit d'une plateforme de VCS décentralisé et social où l'un peu commenter les commits des autres, de forker rapidement un projet, etc... Bref une bonne nouvelle, le nombre de personne contribuant au kernel (committeurs) d'eZ devrait augmenter. L'assemblée semblait inquiète du nombre de commiteurs autorisés sur le projet. Pour moi c'est un faux procès, l'avantage des VCS décentralisés est de mettre fin à la dictature du commit et de favoriser le pull. Vous pouvez en effet forker eZ Publish, les développeurs en seront avertis et pourront par la suite puller vos modifications pour les intégrer au kernel.

Le projet communautaire

Afin de porter sérieusement le projet, la communauté d'eZ Publish devrait s'armer d'une instance décisionnelle (board) afin de fixer la direction prise par le projet. Ce point là est particulièrement intéressant. En effet, tous les projets Open Source d'ambition (Debian, Fedora, etc...) possèdent se genre de structure afin de driver les participations.

Présentation de la version 4.4 d'eZ Publish

La présentation de la 4.4 s'est un peu divisée en 2. Une première partie moins technique le matin devant les clients, et une partie plus techos lors du track communautaire.

  • L'admin2 s'enrichie encore de fonctionnalités AJAX afin de la rendre encore plus ergonomique
  • L'éditeur d'image en ligne qui permet notamment :
    • de cropper
    • de rajouter des watermarks
    • de flouter des visages
    • etc...
  • eZ Network : La version Enterprise possède une extension appelée eZ Network permettant de monitorer l'instance eZ et de gérer les tickets en cour chez eZ. L'identification au portail client se fera via un SSO basé sous oAuth.
  • Nouveau datatype vidéo avec support des vidéos HTML 5. La volonté affichée et de mettre plus de HTML5 dans eZ
  • Gestion des commentaires avec eZ Comment.
  • eZ Find le moteur de recherche évolué d'eZ se trouve enrichit d'une recherche avec autocompletion come pour Google Suggest
  • CJW Newsletter sera la solution de newsletter officielle d'eZ Publish enterprise. La version communautaire sera disponible sur project.ez.no.
  • Nouveau système de session. Actuellement les sessions sont portées par la base de données. C'est bien en mode cluster vu que nous pouvons partager une même session sur un ensemble de serveurs apache mais le problème c'est que c'est couteux en ressources. La solution est donc de revenir à une session en mode file system. Quid du partage de sessions entre les différentes machines d'un cluster d'apache ? Et bien ce partage passe par un serveur de session voir un cluster de serveur de session...
  • Le système de session est aussi simplifié puisque les utilisateurs anonymes ne génèreront plus une session automatiquement et inutilement. Du coup on gagne en performance (c'est fou comme ne pas faire de traitement inutile fait gagner en performance ;-)).
  • Toujours dans le gain de performance, les fichiers de configuration .php et .apend ne seront plus utilisés. Seul les .ini et les .ini.append.php seront utilisés. Du coup, 2 fois moins I/O pour la gestion des settings donc de meilleures performances.
  • Autre nouveauté le Toolkit d'archivage. Pourquoi un archivage ? Car à partir d'10.000.000 d'objets eZ Publish lague. L'idée de ce système et d'aller au delà de 10.000.000 d'objets en stockant les objets dans un moteur XML donc pas en objets ;-)... Les nouveaux objets archivés sont donc stockés en XML hors de l'arborescence eZ Publish On les requête non plus avec des fetch classiques mais avec eZ Find. On est donc purement dans une initiative noSQL donc de performances.
  • Autre nouveauté bien pratique, les sections auront des identifiants en plus des ids. Il est en effet plus facile de manipuler un string unique qu'un id numéraire.
  • eZ Publish 4.4 introduira en bêta la nouvelle API.L'idée est d'avoir un max de retours pour la stabiliser en 4.5. Son but est de faciliter la manipulation d'eZ par des non experts eZ. Cette nouvelle API comprendra aussi une API REST. Au final cette nouvelle API sera une couche de haut niveau entre l'API actuelle (qui demeurera) et le développeur.
  • Amélioration du module d'export XML introduit en 4.3
  • L'ezinfo.php laisse sa place à un fichier XML. Ce fichier, en plus de définir l'extension, en définit aussi les dépendances permettant alors de charger une extension après une autre.

Pour résumer, le but est de faire d'eZ Publih quelque chose :

  • de plus HTML 5
  • de plus simple pour les développeurs / intégrateurs
  • de plus communicant

Une petite remarque (troll) sur l'éditeur d'image. Ce dernier utilise à la fois les librairies jQuery et YUI. Une fois de plus eZ Publish a le cul assis entre ces 2 framework JS. Je trouve regrettable de ne pas trancher pour l'un deux (jQuery par exemple ;-)) et de dégager l'autre (YUI !).

Roadmap de la 4.5

La version 4.4 n'est même pas encore sortie que l'on parle déjà de la 4.5 attendue pour Mars 2011.

  • Extension mobile
  • Workflow avec support des objects states ! Enfin on va avoir 1 vrai workflow et non pas 2 bouts de workflow
  • Cosmétique sur eZ Flow avec notamment eZWT qui devrait avoir un look plus admin2. Du coup La toolbar devrait demander moins d'intégration.
  • Version finale de la nouvelle API
  • Gestion de souscriptions récurrentes (abonnement, etc..)
  • Support de sémantique Web
  • eZ Network permettra de livrer des patch !

eXtend

La forge projects.ez.no sera confortée dans son rôle de forge communautaire et une nouvelle forge devrait arriver pour les applications certifiées. Appelée eXtend, les applications y seront publiées sur le modèle de la version enterprise.

SQLiImport

Jérôme Vieilledent nous a fait une présentation très intéressante de SQLiImport disponible en licence GPL. Cette extension permet :

  • L'import de données on shoot
  • L'import de données scheduled
  • De suivre l'avancement d'un import
  • D'arrêter un import
  • D'importer facilement grâce à un API simplifié
  • etc...

Bref, j'ai hâte d'avoir de l'importation à faire dans un projet ;-).

Troll de l'après midi

Gille Guirant reponsable technique chez Kaliop (mon ancienne boite) nous a fait une keynote sous le signe des vérités qui dérangent : les points faibles d'eZ Publish et les axes d'améliorations qui pourraient s'en suivre avec une touche de fonctionnel :

  • L'export RSS qui ne passe pas par des système de templates
  • Les outils dangereux (RAD, activations des extension, édition de settings et de template depuis l'admin).
  • Les custom tg dont on se sert toujours et qui ne sont pas built-in (Youtube, etc..)
  • La gestion des workflows (toujours elle)
  • etc..

Bref, une journée riche et intéressante aussi bien dans les prise de contact que dans les aspects techniques.

Fedora-Fr de PunBB 1.2 vers FluxBB 1.4

Guillaume Kulakowski

Aujourd'hui les forums de Fedora-Fr ont été migré d'une archaïque version 1.2 de PunBB vers la toute dernière version de FluxBB : la 1.4.2. L'occasion pour mettre à jour mon extension eZFluxBB (disponible sur le SVN, le build arrive bientôt) permettant d'établir un pont entre FluxBB et eZ Publish. L'occasion aussi de développer un petit mod permettant de marquer les sujets comme résolus (bientôt mis à disposition, faut que je le package). Les autres nouveautés sont :

  • Léger rafraichissement du look grâce à CSS3 et CSS3 PIE.
  • Possibilité de rajouter des sondages.
  • Implémentation de reCaptcha.
  • Implémentation d'AddThis.

Voila, un dimanche bien studieux.

Fedora-Fr, mise à jour sous eZ Publish 4.3 et migration vers eZ Flow

Guillaume Kulakowski

Avec un peu de retard, Fedora-Fr vient enfin de passer d'eZ Publish 4.2 vers la version 4.3. Une mise à jour sans encombre une fois de plus grâce au cache statique qui permet de "tout casser" sans que les visiteurs en soient pénalisés ou même ne s'en rendent compte. Les autres éléments mis à jour ou modifiés sont les suivants :

C'est ce dernier point qui a été le plus long à réaliser. Jusqu'à présent, les blocs de Fedora-Fr étaient directement inclus depuis l'éditeur de texte (eZOE). Cette solution, à l'époque, était pratique mais avec l'arrivée d'eZ Flow les astuces utilisées devenaient absurdes. A présent la gestion des différents layouts d'une page est déléguée non plus à des cases à cocher mais à eZ Flow tout comme la gestion des différents blocs.

Fedora-Fr et eZ Flow

Cette migration a été aussi l'occasion de mettre à jour eZFluxBB qui comprend à présent des blocs eZ Flow pour inclure directement les informations de votre forum FluxBB dans votre portail eZ Publish ! Une nouvelle version d'eZFluxBB devrait bientôt voir le jour juste le temps de faire des tests avec FluxBB 1.4.

En effet, la prochaine étape sur Fedora-Fr sera de mettre à jour le forum de PunBB ver FluxBB 1.4.

llaumgui.com sous jQuery

Guillaume Kulakowski

Après plusieurs années de résistance à vouloir faire tourner Dotclear avec MooTools, j'ai décidé de raccrocher les gants. Ce blog tourne à présent sous jQuery, la solution de framework Javascript officiellement retenue par Dotclear. Vraisemblablement, je ne devrais plus trop maintenir mon script dcRemember permettant de faire tourner les fonctions JS de bases de dotclear sous MooTools.

Mais pourquoi lâcher MooTools alors que c'est le meilleur framework JS au monde (si ça c'est pas un troll ;-)) ? La raison est simplement qu'avec l'intégration de jQuery de plus en plus forte dans eZ Publish, je risque d'utiliser de moins en moins MooTools. J'avais donc besoin d'un labo sous jQuery et l'un des buts premiers de ce blog est justement de servir de labo.

leZRSS 1.0 RC1 (template pour flux RSS dans eZ Publish)

Guillaume Kulakowski

A mon avis, le gros défaut du module de syndication d'eZ Publish est le fait de ne pas faire appel au système de template.

Dans le cadre d'un site web classique, cela ne dérange pas, mais dans le cas d'un planet comme celui de Fedora-Fr j'avais des besoins particuliers :

  • L'URL du billet n'est pas l'URL de l'objet eZ mais celui du billet sur le blog de provenance
  • L'ajout des hackergotchis

Dans un cadre plus professionnel citons aussi qu'il m'arrive de détourner le système de RSS pour faire, par exemple, du podcast.

Bref, en voyant des allusions au système d'export RSS dans les notes de version d'eZ Publish 4.3 alapha 1, j'étais confiant en une telle implémentation mais malheureusement ce n'est toujours pas le cas. C'est donc pour palier à cette lacune que j'ai développé leZRSS.

Qu'est-ce que leZRSS apporte ?

  • Le module rss2/feed identique à /rss/feed mais utilisant le système de template (override possible selon le type d'objet).
  • Un opérateur fetch permettant de récupérer la liste de tous les flux RSS de la plateforme.

Je n'ai pas encore proposé cet extension sur la forge d'eZ Publish car le secteur des flux RSS est déjà pas mal squatté et je n'avais pas envie de faire un YARSSE (Yet Another RSS Extension). Donc le projet est hébergé sur ma forge.

eZ Publish : rajouter des contrôles sur les données via les content edit handler

Guillaume Kulakowski

La possibilité de rajouter des contrôles sur les données saisies lors du processus de publication d'un objet eZ Publish est une nouveauté introduite dans eZ Publish 4.1. Jusqu'alors, si on voulait rajouter des règles métiers dans un formulaire eZ Publish, il fallait passer par la création d'un datatype héritant plus ou moins d'un datatype déjà existant et implémentant ces règles. Maintenant le content edit handler se dote d'un validateInput permettant enfin de contrôler les données saisies.

Concrètement à quoi ça sert ? Dans mon cas, lors de la création d'un compte par les administrateurs sur le planet de Fedora-Fr (géré bien évidement par eZ Publish), je veux être sûr que le login renseigné correspond à un GauffrUser (utilisateur de la Gestion de Authentification Unifiée de Fedora-FR, Gauffr fera l'objet d'un prochain billet). Pour cela, j'ai donc rajouté un petit contrôle :

function validateInput( $http, &$module, &$class, $object, &$version, $contentObjectAttributes, $editVersion, $editLanguage, $fromLanguage, $validationParameters )
    {
        $result = array( 'is_valid' => true, 'warnings' => array() );
        $isValid =& $result['is_valid'];
        $warnings =& $result['warnings'];

        $contentClassIdentifier = $class->Identifier;
        $gauffrIni = eZIni::instance('gauffr.ini');

        switch( $contentClassIdentifier )
        {
            case $gauffrIni->variable('eZUser', 'UserClassIdentifier'):

                /* get user login */
                $user_account = $object->dataMap();
                $user_account = $user_account['user_account'];
                $user_accountID = $user_account->ID;
                $http_login = 'ContentObjectAttribute_data_user_login_' . $user_accountID;
                if ( $http->postVariable( $http_login ) )
                {
                    $login = $http->postVariable( $http_login );
                    /* Fetch GauffrUser */
                    if ( !isset($GLOBALS['GAUFFR_INIT']) || !$GLOBALS['GAUFFR_INIT'] )
                        include 'Gauffr/gauffr.php';

                    if ( !empty($login) && $gauffrIni->variable('GauffrSettings', 'StricMode') == 'enabled' && !GauffrUser::unique(GauffrUser::fetchUserByLogin( $login ) ) )
                    {
                        $warnings[] = array( 'text' => ezi18n( 'gauffr/validate', 'No GauffrUser "%user" in GauffrMaster. Please add account on GauffrMaster first.', null, array('%user' => $login) ) );
                        $isValid = false;
                    }
                }
                break;
        }

        return $result;
    }

Petit résumé de l'eZ Conference & Awards

Guillaume Kulakowski

Jeudi et Vendredi, se tenait l'eZ Conference, qui après pas mal d'années passées dans le pays natal d'eZ System (la Norvège) a, cette année, posé ses valises dans notre capital. L'occasion pour moi d'y participer (Merci Bertrand pour l'invit') !

eZ Publish in a changing CMS landscape

Ce que j'ai surtout retenu ce fut le roadmap d'eZ Publish et surtout la version 4.3 qui devrait apporter une refonte intégrale de la génération de pdf (bye bye ezpdf), refonte autour de l'eZ Components document (la gestion du pdf arrive dans la version 2009.1). eZ Publish 4.3 annonce également une refonte de l'administration qui, je l'espère, sera plus ergonomique et plus orientée end-user.

Le roadmap d'eZ Find a également été évoqué avec des nouvelles fonctionnalités comme l'indexation des données Exif ou une cohabitation avec eZ Flow (j'y reviendrai plus loin). Mais également une fonctionnalité d'élévation, c'est à dire des résultats sponsorisés. Cette dernière fonction pourrait, par exemple dans le cadre d'un site d'annonce, permettre à des annonces de ressortir au dessus des autres.

Un support de CouchDB pour archiver des données eZ a également été évoqué. Je dois avouer avoir un peu décroché dans l'explication (en anglais) mais cette base de données orientée document est en train de monter dans la communauté open-source.

eZ Components perspectives

Comme je maintiens quelques eZ Components pour Fedora et RHEL5, j'ai choisi la présentation des composants au lieu de celle de Varnish. Là encore, le point chaud a été la présentation du roadmap de la version 2009.1 actuellement au stade de release candidat (et qui doit sortir demain) :

  • Authentication : support d'OpenID
  • Document : support du PDF pour pouvoir être utilisé dans eZ Publish 4.3
  • Translation : script pour extraire les chaines à partir des templates, comme ezlupdate pour eZ Publish ou comme Poedit

Du coup, je pense après avoir packagé les components en version 2009.1, packager aussi ezc-document.

The State of Quality Assurance Tools for PHP

Animé par Sebastian Bergman, très connu dans le milieu du test unitaire php, il s'agit du développeur de phpUnit. Mais ce que je ne savais pas, c'est qu'il est également derrière d'autres projets liés aux tests ou au contrôle qualité parmi lesquels :

  • phploc : line of code, un utilitaire permettant d'obtenir des statistiques sur le code source : ligne de code, commentaires, etc...
  • phpcdp pour lutter contre la duplication de code et apprendre à bien factoriser son code

Suite à cette présentation, je me suis fait une liste d'outils à (re)tester :

Bref, comme je ne suis pas encore convaincu par la PIC php Xinc, je pense me coder une pseudo PIC maison qui check mon SVN et lui fait passer une batterie de tests.

Deployment of a multi-site platform

Présenté par Gilles Guirand, de la société Kaliop, qui se trouve être mon ancien employeur. Il était là pour présenter les bonnes pratiques dans le cadre d'un déploiement multi-sited d'eZ. Pour la première partie rien de surprenant car il prêchait un convaincu (et pratiquant). A la fin de la présentation, il a montré une extension d'usine à site permettant d'automatiser le processus de création d'un site eZ Publish à partir d'un modèle.

Pour le moment Kaliop n'envisage pas encore de libérer cette extension et eZ System semble en posséder une similaire dans ces cartons... Wait and see.

eZ Find and eZ Flow, enterprise-grade duo

Ici, le plus impressionnant était une démonstration eZ Find 2.1 couplée à eZ Flow 2.0 avec un intégration de l'API Google Map. En gros, eZ Find, dans ce cadre, pourra faire de la géolocalisation.

Customizing the editor experience with eZ Online

Pas de grandes nouveautés pour moi car je me sers d'OE5 depuis pas mal de temps et cela dès eZ 4.0 (avec le hack kernel qui va bien). Cependant, j'ai apprécié les exemples de personnalisation du thème d'ezoe, selon moi surtout utile avec la website toolbar afin d'adapter la barre du site au reste du site.

Autre point intéressant, la possibilité de définir une configuration par attribut, cela permet ainsi de donner un accès limité à ezoe pour de l'user imput (permettre seulement le gras et l'italique dans les commentaires par exemple)

10 years of Enterprise Open Source Content Management

Par Aleksander Farstad, le boss d'eZ System, ce fut le seul keynote intéressant à mon sens. Il a évoqué l'historique d'eZ Publish, mais aussi les choix qui ont amené à adopter un modèle dans lequel il croyait dès 1999 : l'open source ! Ne plus vendre le produit mais le service autour ! Bref, une présentation à la fois drôle mais également dans l'esprit garage des start-up.

eZ Publish architecture for the media market

Présentation par un gars de chez Nexen (Groupe Alterway), il a montré quelques exemples de gros sites en eZ Publish avec les architectures hardware qui correspondent. Il a aussi appuyé le fait qu'une bonne infrastructure est une architecture scalable.

eZ Teamroom

Enfin ! Depuis que j'en entends parler, j'ai enfin pu voir le futur produit d'eZ System : eZ Teamroom. Parmi les prés requis, ont notera eZP 4 et eZ Find. eZ Teamroom est en fait un produit à mi-chemin entre Trac et Microsoft Project, il permet de faciliter le travail en équipe avec des fonctionnalités comme :

  • Gestion des taches avec pourcentage d'avancement (on espère des tableaux de bords pour avoir une vision globale d'un projet)
  • Blog
  • Forum
  • Wiki
  • GED

eZ Teamroom permet donc de :

  • Planifier, manager et contrôler le suivi d'un ou plusieurs projet(s)
  • Optimiser la communication d'équipe et vers le client
  • Planifier les milestones et les taches
  • Discuter et communiquer
  • Organiser la base de connaissance

Chose intéressante également, eZ Teamroom semble embarquer eZ Personnal Frontpage qui, jusqu'à présent, est une extension payante...

eZ Publish lifecycle and community contributions

Je dois avouer avoir un peu séché cette présentation (que je connais par cœur) pour participer à quelques discussions techniques informelles non loin du buffet...

Barcamp

Le barcamp nécessiterait un résumé complet à lui seul. Malheureusement, à cause de la certification, il a été quelque peu reculé et au final je n'ai pu y assister jusqu'à la fin pour cause de contraintes SNCF. J'ai cependant pu admirer la prochaine version du site communautaire eZ.