Fil RSS 1.0 avec Dotclear2

DC2 installé depuis quelques jourt, et damned, pas de flux RSS 1.0 ! Premier plongeon dans ses entrailles (bien pensées, pour ce que j’en ai vu) pour l’ajouter. Le patch complet est disponible ici et l’explication pas à pas ci-dessous, les liens vers des fichiers correspondant aux fichiers modifiés (à partir de ceux de la 2.0beta2[1]).

Concernant l’écriture du flux en lui-même, il s’agit d’un "banal" template à réaliser - en se basant sur les exports RSS 2.0 et Atom existants afin de récupérer les noms de variables. Les 2 templates rdf.xml et rdf-comments.xml sont à placer dans le répertoire inc/public/default-templates/. Je n’ai pas ajouté de feuille de style pour afficher ces flux en HTML comme c’est le cas pour RSS 2.0 et Atom, notamment puisque Firefox2 s’en charge très bien - et un peu par flemme aussi, il faut bien l’avouer.

La seconde partie consiste à faire accepter à DC un flux nommé ‘rdf’ et non pas ‘rss2′ ou ‘atom’, et se fait en 2 étapes:

Ces étapes sont à répéter pour les flux par tags, mais tout ce fait cette fois-ci dans le fichier plugins/metadata/_public.php.

Troisième partie, intégrer ce flux dans les templates. Dans les fichiers category.html, post.html et tag.html de votre template (ou du template par défaut si vous voulez ensuite que la modification s’applique à tous vos thèmes qui ne surchargent pas ces fichiers), remplacer respectivement dans les appels de fonctions de template CategoryFeedURL, BlogFeedURL et TagFeedURL l’argument type="rss2" par type = "rdf". Ne modifiez pas ceux des entêtes mais ajoutez la ligne suivante dans _head.html:

 <link rel="alternate" type="application/rdf+xml" title="RSS 1.0" href="http://apassant.net/blog/feed/rdf" />

Dernière étape, facultative, modifier les liens de syndication du widget dedié. Pour cela, dans widgets/_defauls_widgets.php, ajoutez RDF aux options l.42, et dans widgets/_widgets_functions.php, modifiez la fonction subscribe pour authoriser ‘rdf’, avec le bon mime-type. D’ailleurs ici, ca serait pas mal que le flux choisi soit récupéré par défaut dans les différentes fonctions XXFeedURL, pour éviter d’avoir à changer les templates - ou alors j’ai loupé un truc[2] ?

Et voila, vous avez maintenant un DC2 avec un flux RSS1.0 ‘de base’, accessible via l’URI /feed/rdf que vous pourrez enrichir avec FOAF par ex, ou d’autres vocabulaires RDF (en attendant un plugin dedié Web Sémantique ;)

Notes

[1] La 2.0beta3 vient de sortir pendant que je finissais ce billet.

[2] Et tant qu’à faire, un flux RDF en natif dans DC2, ça serait également sympa.

Comments

8 Responses to “Fil RSS 1.0 avec Dotclear2”

  1. Harisson on November 5th, 2006 12:59 pm

    hello Alex,

    le format de syndication Atom 1.0 est déjà un format xml/rdf (extensible) et, amha, sera l’avenir pour ce type de flux. RSS 1.x n’évolue plus beaucoup et les "gros acteurs web" du marché comme apple itunes ou yahoo mrss ont déjà spécifié leur format proprio basé sur le format "populaire" xml RSS 2.0.

  2. biou on November 5th, 2006 7:42 pm

    Bonjour, Je ne pense pas qu’on intègre dans une version future par défaut un fil rss 1.0. En effet rss 1.0 est un format sympa et extensible, mais il n’évolue plus et n’est même pas cohérent avec la dernière version de rdf, donc bof. La validation syntaxique n’est pas des plus agréables, l’implémentation de rss 1.0 dans les agrégateurs est de qualité assez variable (le fait d’avoir un document rdf bien formé ne suffit pas, la plupart des agrégateurs utilisent le flux comme un fichier xml) De notre coté, on est plutôt tournés vers atom, et si ça ne tenait qu’à moi, on fournirait uniquement de l’atom… (ce qui n’est pas incompatible avec la production de documents rdf, faisant référence à un rdfs atom par ex., ou encore la mise en place d’un endpoint sparql)

  3. Alex on November 6th, 2006 3:47 pm

    Harisson> T’es sur ? Il me semble plutot qu’un flux Atom est basé sur XML, mais qu’il existe des mappings et outils pour le tranformer en RDF avec AtomOWL par exemple.

    biou> Ok, pas de problème pour DC2, ça pourra de toute façon faire partie du plugin WS qu’on envisage avec Harisson justement. Par contre, t’entends quoi par pas cohérent avec la dernière version de RDF ? Pour l’évolution, à partir du moment ou on peut rajouter ses vocabulaires, ça ne pose pas de soucis selon moi (même si c’est sur que c’est pas forcément le plus évident pour celui qui souhaite mettre simplement en place un flux sur son site)

  4. Harisson on November 7th, 2006 2:31 pm

    oui tu as raison c’est uniquement XML ( AtomAsRDF ), par contre il est extensible et accepte du FOAF par exemple ( Article IBM sur Atom 1.0+FOAF ).

  5. biou on November 7th, 2006 6:35 pm

    Alex> pour ce qui est de mon avis sur rss 1.0, il me semble que la spec est plus ancienne que la dernière version de rdf (2004) et donc ne prend pas en compte certains avantages, notamment le fait de pouvoir se passer de "l’échappement" du html, ce qui rend le format pas très pratique à utiliser. J’ai retrouvé un vieux post chez Danny Ayers qui dit à peu près la même chose : http://dannyayers.com/2006/01/17/wo…

    A noter la piste de la spec rss 1.1 qui utilise la dernière version de la spec rdf, mais je ne sais pas ce que ça vaut, ni si ça passe bien dans les agrégateurs de base.

  6. biou on November 7th, 2006 6:38 pm

    ah j’oubliais, si vous faites un plugin WS pour dotclear 2, je suis grandement intéressé, dans la mesure où je travaille sur des projets en rapport avec le web sémantique au boulot, ça me permettrait de joindre l’utile à l’agréable :) Je veux bien beta-tester en tout cas.

  7. Alex on November 10th, 2006 1:53 pm

    Merci pour les infos, je n’avais jamais remarqué pour RSS1.0.

    Pour le 1.1 je l’ai rarement vu (jamais en fait je crois) en prod, ni dans des API comme MagpieRSS ou FeedParser.

    Ah, et pour le plugin, ça peut le faire je pense, on se disait justement qu’on allait avoir du mal à rentrer dans l’architecture de DC2 :)

  8. biou on November 19th, 2006 5:46 pm

    ok n’hésitez pas à me contacter si vous avez besoin d’infos sur le développement de plugins pour dc2.
    bon courage!

Leave a Reply

You must be logged in to post a comment.