De: Nicolas Krebs <nicolas1.krebs2@netcourrier.com>
A: spip-dev@rezo.net
Date: Wed, 11 Jul 2007 23:56:29 +0200
Sujet: [spip-dev] modification de la lecture des categories atomDans la définition du format atom 1.0 (rfc 4287 RFC 4287 - The Atom Syndication Format ),
il est indiqué comment ajouter des catégories (qui peuvent couvrir tant les
rubriques que les mots-clés de SPIP) à un article référencé.
Cela fonctionne avec un élément xml du type
<category scheme="http://spip.example/rubrique" term="1"
label="Nouvelle rubrique"/>Pour ma contrib
Squelettes Atom 1.0 (version 1.1) - SPIP-Contrib ,
j'ai choisi de faire écrire scheme et terme de façon à ce que,
unis, leurs contenu forme une adresse uri, identifiant la catégorie.
C'est ainsi que SPIP 1.9.3 lis les flux atom.Cependant, la norme autorise aussi d'écrire quelque chose comme
<category scheme="http://spip.example/rubrique"
term="http://spip.example/rubrique"1" label="Nouvelle rubrique"/>.
Si une catégorie est de ce type, alors fusionner les deux attributs donne un
« http://spip.example/rubriquehttp://spip.example/rubrique1 s
peu gracieux.Afin déviter cela j'ai ajouté dans
http://trac.rezo.net/trac/spip-zone/browser/_squelettes_/atom/
un attribut spip:uri contenant l'uri (utilisable par le microformat rel-tag
rel="tag" - Microformats Wiki ).Serait-il possible de modifier SPIP pour que cet attribut
soit utilisé de préférence (si il est présent, si c'est une uri valide),
aux attributs scheme et term ?
J'ai ajouté un test dans
http://trac.rezo.net/trac/spip-zone/browser/_dev_/tests/syndication/
par http://trac.rezo.net/trac/spip-zone/changeset/13204 .
J'ai aussi ajouté un test par
http://trac.rezo.net/trac/spip-zone/changeset/13694
pour vérifier que SPIP n'a pas de problème (ce qui est le cas)
en cas d'absence d'attribut scheme, qui n'est pas obligatoire.
Il sufirait probablement de modifier la fonction ajouter_tags
(dans http://trac.rezo.net/trac/spip/browser/spip/ecrire/inc/syndic.php#ajouter_tags )
Voici le patch :
Ajout de la lecture des attributs spip:uri, ajoutés par
[/trac/spip-zone/changeset/13204]
diff -ur spip/ecrire/inc/syndic.php
--- spip/ecrire/inc/syndic.php Sun May 27 14:32:12 2007
+++ spip/ecrire/inc/syndic.php Sat Jul 21 12:17:02 2007
@@ -92,6 +92,12 @@
}
else if (
// cas atom1, a faire apres flickr
+ // cas atom1 + attribut spip
+ $url = extraire_attribut($match[0], 'spip:uri')
+ ) {
+ }
+ else if (
+ // cas atom1 general
$url = extraire_attribut($match[0], 'scheme')
.extraire_attribut($match[0], 'term')
) {