Étude du Planet eZ Publish.fr (2/3) : modules/vues et templates

Suite de la série de billets sur la réalisation du Planet eZ Publish.fr avec dans celui ci quelques notes sur les modules/vues spécifiques ainsi que sur la réalisation des templates.

I. Organisation et Import des articles

II. Modules/vues sur mesure et templates

III. Performances : caches et compagnie

Modules / vues sur mesure

Pour le moment, seuls deux vues spécifiques sont utilisées sur le site.

feed/planet

Cette vue sert à générer le flux RSS du Planet. Comme pour l'import RSS, le composant Feed des eZ Components est utilisé. L'intérêt principal par rapport à l'export RSS de base est la possibilité d'ajouter la balise dc:author avec le nom du site (l'objet parent dans le cas du Planet). Cette vue implémente également un système de cache sur le même principe que le cache de vue. Ce cache est vidé et est re-généré par le script d'import RSS alors que le cache de l'export RSS par défaut expire au bout d'un temps fixe.

Cette vue reproduit la vue de recherche par défaut en forçant la recherche dans une sous-arborescence sans avoir besoin de passer le paramètre SubTreeArray . Contrairement à content/search, elle permet également l'utilisation des persistent variables comme sur content/view.

Templates et opérateur

Les templates pour ce site sont assez classiques et plutôt simples compte tenu de la charte graphique basique. Seule « astuce », chaque vue full fixe deux entrées dans les persistent variables ce qui permet de générer un titre et une description pertinents sans aucun fetch supplémentaire dans le pagelayout qui serait synonyme de requêtes SQL et/ou de cache supplémentaire à gérer (voir les dernières lignes du template planet.tpl et les premières du pagelayout.tpl par exemple).

Le seul opérateur spécifique est l'opérateur clean_rewrite_xhtml utilisé à la place de l'opérateurwash pour afficher les attributs Text block contenant le texte issu des flux RSS. Cet opérateur a plusieurs fonctions :

  • rendre valide le code XHTML avec le module PHP Tidy
  • réécrire les éventuels URLs relatives à site (images et liens)
  • supprimer toute trace de Javascript grâce à quelques expressions XPath.