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

planet/search

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érateur wash pour afficher les attributs Text block contenant le texte issu des flux RSS. Cet opérateur a plusieurs fonctions :

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

Les nouveautés de PHP6

Vu sur l'IBM Developer Works un court et synthétique article sur les nouveautés attendues dans PHP6, encore plus en bref :

Il est dommage que ce passage ne soit pas l'occasion de refondre l'API pour y apporter une cohérence regrettée...

Tags : XML, PHP, Web

Convertir les fichiers d'un GPS en KML lisible sur Google Map et Google Earth

Un tout petit billet rapide en guise de pense bête pour ceux (comme moi) qui voudraient convertir des fichiers issus d'un GPS (par exemple au format GDB, Garmin MapSource) en KML (Keyhole Markup Langage) pour pouvoir visualiser une trace sur Google Maps (ou Google Earth). J'ai d'abord utilisé GPSVisualizer en ligne (attention la version française ne propose pas la conversion en KML) avant de comprendre que ce site utilisait en fait le logiciel gpsbabel disponible sous Ubuntu dans les dépôts Universe. Une fois ces dépôts configurés, pour l'installer vous pouvez utiliser synaptic ou taper la ligne suivante :

 

$ sudo apt-get install gpsbabel

 

Ensuite pour convertir les fichiers GDB de l'association de VTT Philovelo, j'ai utilisé la ligne de commande suivante :

 

gpsbabel -i gdb -f gdb/50km\ -\ Teyran.gdb -o kml,points=0,line_width=4,line_color=ff000099,units=m -F kml/50km_-_Teyran.kml

 

Et hop voila le tracé de la dernière balade au nord de Montpellier directement visible sur Google Maps, efficace et facilement automatisable, du coup j'ai converti l'ensemble des traces ! J'ai pas mal cherché avant de comprendre comment appliquer les différentes options spécifiques au format KML alors qu'il suffit de les ajouter après le format de sortie séparées par une virgule.

En plus, les fichiers KML sont en fait de simples fichiers XML assez faciles à lire, voila qui donne plein d'idées d'exploitation mais c'est une autre histoire...

Vers un plugin eZVim ?

J'en parlais récemment lors d'un déplacement à Levallois, j'ai vraiment envie d'avoir un plugin vim dédié au développement eZ Publish similaire à celui lancé par Smile pour Eclipse, car il y a de bonnes idées et parce que franchement Eclipse c'est pas mon truc du tout... Ce qui m'intéresse surtout dans un premier temps, c'est la fonctionnalité ClassView et éventuellement la vérification syntaxique des templates à la sauvegarde ou en lançant une commande. Je pense aussi intégrer quelques abréviations Vim permettant d'insérer rapidement quelques constructions syntaxiques courantes (fetch list, node, tree, ...).

Vim dispose d'un langage de script permettant de manipuler les différents éléments du programme (configuration, buffer, fenêtre, ...) et d'extensions permettant d'utiliser des langages plus avancés dont Ruby, Python, TCL et Perl. Je connais mal Perl et pas du tout les 3 autres, mais je suis assez attiré par Python. Je me suis donc lancé dans un aperçu rapide de ce langage grâce au très bon livre Langages de script sous Linux de Christophe Blaess et pour le moment, je trouve ce langage très élégant et plutôt agréable à utiliser... Bon j'ai juste pondu 18 lignes de code très inspirées d'un petit hack permettant de poster sur un blog Wordpress depuis Vim. Pour le moment mon code permet d'afficher dans un buffer vim les groupes de classes, les nom des classes et leurs attributs extraits du XML généré par l'extension eZ Publish SmileClasses (la même utilisée par le plugin Eclipse), c'est un début. Il faut maintenant que j'épluche un peu la documentation pour obtenir un panneau lattéral similaire à ce que fait par exemple l'extension Taglist.

En direct de Levallois Perret #2

C'est le retour de la vengeance :-) Cette fois c'est l'hôtel Wilson qui m'accueille et franchement par rapport à la dernière fois c'est le grand luxe ! Bon en fait c'est normal quoi. Le seul défaut que j'ai relevé pour le moment, c'est l'ordinateur en libre service à l'accueil : c'est un Mac sans Firefox... D'ailleurs là je suis en train de me demander comment je vais mettre en forme ce mini billet puisque l'éditeur enrichi Online Editor n'est pas compatible avec Safari... Un peu de XML sauce eZ Publish, finalement c'était pas si difficile, cela a eu au moins le mérite de me faire découvrir qu'une documentation sur l'extension ezodf (Import Export ODF) est en ligne, un truc de plus à consulter au moins en diagonal.

Flux RSS des billets

Flux RSS des billets

Rechercher sur pwet.fr

À retenir

Derniers commentaires

Archives

Nuage de tags

Bioutifoul photos

Quelques liens

Licence d'utilisation

Contenu sous Licence Creative Commons By-Sa

Sauf mentions spécifiques, les billets et les photos publiés sur ce site sont placés sous la licence Creative Commons by-sa.

Pour toute utilisation dépassant le cadre de cette licence, merci de me contacter par e-mail.