eZ Publish est un excellent gestionnaire de contenus, à mon avis un des mailleurs en PHP. Il pêchait par contre au niveau de la gestion de sites, en offrant peu de possibilités d'administration de l'affichage des contenus sur les pages d'un site. Le plus souvent, il fallait recourir à l'écriture de modèles de pages (templates), tâche nécessitant des compétences techniques.

Ce manque a été en grande partie comblé avec la sortie en novembre dernier, en même temps qu'eZ Publish 4, de l'extension eZ Flow qui permet aux administrateurs du site de gérer facilement le contenu des pages.

eZ Flow permet de définir des modèles de mise en page (layouts) composés des zones (zones) administrables. Les zones contiennent elles-même des blocs (blocks) qui affichent les contenus. Techniquement, chaque layout est un template. Ce système permet d'alléger les templates en les transformant en simples squelettes dans lesquels les administrateurs positionneront les contenus.

Comment ça marche ?

Les layouts, leur zones et les blocs disponibles sont définis dans des fichiers de configuration et avec un peu de programmation. Les pages basées sur un layout peuvent ensuite être éditées directement depuis le front office: une fois connecté on choisi pour chaque page un modèle, et on remplit les zones avec des blocs, en sélectionnant le contenu de ceux-ci. Le nombre de blocs par zone et leur position relative sont également administrées depuis le front office. Un moteur de recherche intégré à l'éditeur de page permet de rechercher des contenus dans le site et de les insérer dans les blocs.

3 types de blocs peuvent actuellement être définis:

  • des blocs manuels : leur contenu est sélectionné librement
  • des blocs automatique : ils affichent les contenus renvoyés par des fonctions paramétrables. On peut par exemple définir une fonction retournant les n derniers articles d'un auteur, le nombre d'articles et le nom de l'auteur étant des paramètres administrables à l'édition de la page.
  • des blocs spéciaux, eux aussi paramétrables (par exemple pour afficher un nuage de tags)

Chaque bloc peut proposer plusieurs méthodes de rendu (views) des contenus correspondant à autant de templates. La vue à utiliser est choisie dans l'interface d'administration du bloc sur la page.

A noter que pour l'occasion, eZ est passé à l'heure AJAX, et les mises à jour de blocs se font sans recharger toute la page. Une amélioration vraiment bienvenue quand on a l'habitude de travailler avec le back office, parfois un peu lourd et lent.

Ci-dessous un aperçu de l'interface d'administration d'une page, avec sur la gauche le moteur de recherche, et en colonne centrale le choix du modèle de page et l'administration de chaque bloc.

eZ Flow - interface d'administration

Planification

Lorsqu'on on ajoute des contenus à un bloc, on peut choisir leur date de publication. Ainsi, chaque bloc peut avoir des contenus publiés (online), des contenus en attente de publication (queue) et conserve une archives des contenus dé-publiés. Mieux, un mécanisme permet d'envoyer vers un autre bloc les contenus lorsqu'ils sont archivés. On pourra par exemple avoir un bloc avec une liste des dernières actualités et un autre avec les actualités précédentes, le second étant alimenté automatiquement avec les contenus qui cessent d'être publiés dans le 1er.

On peut aussi planifier une rotation des contenus à intervalles régulier, par exemple publier l'item suivant de la queue toutes les heures.

Enfin, une timeline permet de prévisualiser la page à une heure donnée:

la timeline

Dernière fonctionnalité, et non des moindres, de l'extension, elle permet de gérer la publication de vidéos : enregistrement à partir d'une webcam, gestion de la diffusion en streaming... Elle s'appuie pour cela sur Flash et le serveur se streaming libre Red5. Je n'ai pas pu tester donc je n'en parlerai pas ici, mais si quelqu'un a des retours d'expérience...