[Fil RSS] besoin d'un oeil expert

J’ai un truc bizarre avec le fil RSS du boulot… Ca me fait une erreur sous Firefox (même avec le plug-in Sage), mais ça fonctionne sous AlerteInfo…
Comment que c’est possible ça ??? :shock:
Si ça dit à quelqu’un de jeter un coup d’oeil, il est
Et puis aussi, étant donné que c’est du RSS généré direct sous SPIP, ben est-ce qu’on peut y faire quelque chose? (à part une mise à jour de SPIP : ma collègue a essyé la semaine dernière, ça nous a pris 1 journée entière pour refaire marcher le site… :? )

quelle version de spip ?
à vue de nez ;-) je trouve le fichier backend trop “simple” pour passer n’importe ou, par exemple avec une version récente j’ai un truc de genre


<?php
@header('Content-type: text/xml[; charset=(#CHARSET)]');
echo '<'.'?xml version="1.0"[ encoding="(#CHARSET)"]?'."> ";
?>
<rss version=“2.0”
xmlns:dc=“DCMI: DCMI Metadata Terms
xmlns:content=“RDF Site Summary 1.0 Modules: Content
>

[(#NOM_SITE_SPIP|texte_backend)]
#URL_SITE_SPIP/

#LANG
SPIP - www.spip.net
[
[(#NOM_SITE_SPIP|texte_backend)]
(#LOGO_SITE_SPIP||extraire_attribut{src}|url_absolue|texte_backend)
#URL_SITE_SPIP/
[(#LOGO_SITE_SPIP||extraire_attribut{height})]
[(#LOGO_SITE_SPIP||extraire_attribut{width})]

]
<BOUCLE_un_article(ARTICLES){id_article}>

[(#TITRE|supprimer_numero|texte_backend)]
[(#URL_ARTICLE|url_absolue)]
dc:date[(#DATE|date_iso)]</dc:date>
dc:formattext/html</dc:format>
dc:language#LANG</dc:language>
[dc:creator(#LESAUTEURS|supprimer_tags|texte_backend)</dc:creator>]
[(#REM)
On diffuse la rubrique et les mots-cles a la mode RSS
]<BOUCLE_rubrique_rss(RUBRIQUES){id_rubrique}><category[ domain=“(#URL_RUBRIQUE|url_absolue)”]>[(#TITRE|supprimer_numero|texte_backend)]</BOUCLE_rubrique_rss>
<BOUCLE_mots_rss(MOTS){id_article}>
dc:subject[(#TITRE|texte_backend)]</dc:subject></BOUCLE_mots_rss>
[(#INTRODUCTION|texte_backend)]
[(#REM)
Le bloc qui suit diffuse la rubrique et les mots-cles
sous forme de “microformats”
]<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>-
[(#TITRE|texte_backend)]
</BOUCLE_rubrique_mf><B_mots_mf>
/ <BOUCLE_mots_mf(MOTS){id_article}{“, “}>
[(#TITRE|texte_backend)]</BOUCLE_mots_mf>

[(#REM)
Le bloc qui suit diffuse aussi le texte integral de l’article,
ce qui permet une syndication plus riche (mais plus “lourde”).
Fonction desactivable en modifiant backend.php3
][
(#ENV{texte_complet}|?{’ ‘,’'})content:encoded[(#LOGO_ARTICLE|right||texte_backend)
][
(#CHAPO|texte_backend)

][
(#TEXTE|texte_backend)

][

(#NOTES|texte_backend)

][
(#PS|texte_backend)
]
</content:encoded>
]
[(#REM)
Le bloc qui suit diffuse l’adresse des documents associes aux articles ;
ajouter par ex. {extension=mp3} pour limiter a un certain type de document.
]<BOUCLE_podcast(DOCUMENTS){id_article}{mode=document}{doublons}>[
<enclosure url=”(#URL_DOCUMENT|url_absolue|unique)”[ length=“(#TAILLE)”][ type=“(#MIME_TYPE)”] />]
</BOUCLE_podcast>

</BOUCLE_un_article>
<BOUCLE_10recents(ARTICLES){lang ?}{branche ?}{par date}{inverse}{0,10}{unique}>
<BOUCLE_a(BOUCLE_un_article)></BOUCLE_a>
</BOUCLE_10recents>
<BOUCLE_tres_recents(ARTICLES){lang ?}{branche ?}{par date}{inverse}{age<3}{unique}>
<BOUCLE_b(BOUCLE_un_article)></BOUCLE_b>
</BOUCLE_tres_recents>



mais avec une ancienne version de spip il va te manquer des filtres
l’idée c’est de modifier le backend.html pour qu’il soit plu au goût du jour et des standards
une version simple serait du style
version actuelle

<? echo '<?xml version="1.0" encoding="iso-8859-1"?>'; ?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
http://my.netscape.com/publish/formats/rss-0.91.dtd”>




#NOM_SITE_SPIP
#URL_SITE_SPIP

fr-fr

#NOM_SITE_SPIP
#URL_SITE_SPIP/IMG/ruboff0.gif
#URL_SITE_SPIP



<BOUCLE1(articles){tout}{par date}{inverse}{0,10}>

#TITRE
#URL_SITE_SPIP/#URL_ARTICLE
#DESCRIPTIF
<BOUCLE23(auteurs){id_article}{, }>#NOM







version modifié

<?php echo '<'.'?xml version="1.0" encoding="#CHARSET"?'.'>'; ?>


[(#NOM_SITE_SPIP|textebrut|entites_html|entites_unicode)]
#URL_SITE_SPIP/

#LANG

[(#NOM_SITE_SPIP|textebrut|entites_html|entites_unicode)]
#URL_SITE_SPIP/IMG/ruboff0.gif
#URL_SITE_SPIP/



<BOUCLE_rub(RUBRIQUES){id_rubrique}>
<BOUCLE1(ARTICLES){branche}{par date}{inverse}{0,10}>

[(#TITRE|textebrut|entites_html|entites_unicode)]
#URL_SITE_SPIP/#URL_ARTICLE
#DATE
[(#LOGO_ARTICLE|left||entites_html) ][(#INTRODUCTION|textebrut|entites_html|entites_unicode)]
<BOUCLE23(AUTEURS){id_article}{“, “}>[(#NOM|textebrut|entites_html|entites_unicode)]


</BOUCLE_rub>

<BOUCLE2(ARTICLES){tout}{par date}{inverse}{0,10}{unique}>

[(#TITRE|textebrut|entites_html|entites_unicode)]
#URL_SITE_SPIP/#URL_ARTICLE
#DATE
[(#LOGO_ARTICLE|left||entites_html) ][(#INTRODUCTION|textebrut|entites_html|entites_unicode)]
<BOUCLE_aut2(AUTEURS){id_article}{”, “}>[(#NOM|textebrut|entites_html|entites_unicode)]</BOUCLE_aut2>
dc:creator<BOUCLE_aut2b(AUTEURS){id_article}{”, “}>[(#NOM|textebrut|entites_html|entites_unicode)]</BOUCLE_aut2b></dc:creator>


<BOUCLE3(ARTICLES){tout}{par date}{inverse}{age<3}{unique}>

[(#TITRE|textebrut|entites_html|entites_unicode)]
#URL_SITE_SPIP/#URL_ARTICLE
#DATE
[(#LOGO_ARTICLE|left||entites_html) ][(#INTRODUCTION|textebrut|entites_html|entites_unicode)]
<BOUCLE_aut3(auteurs){id_article}{”,”}>[(#NOM|textebrut|entites_html|entites_unicode)]</BOUCLE_aut3>
dc:creator<BOUCLE_aut3b(AUTEURS){id_article}{", "}>[(#NOM|textebrut|entites_html|entites_unicode)]</BOUCLE_aut3b></dc:creator>


<//B_rub>



c’est le traitement
|textebrut|entites_html|entites_unicode
qui assure que le texte est bien envoyé comme il faut au lecteur RSS.

pour les maj spip est généralement ok mais faut y aller progressivement, et les versions 1.8.xxx sont moins tolérantes concernant le code mal foutu d’ou l’apparition d’eereurs sur le site…

PS : j’écris tout ça mais j’ai pas eu de souci avec ton fil RSS…

J’ai installé trois fil RSS sur du 1.7.2 (le -dist), 1.8 (retouché par bibi) et 1.8.1 (retourché par bibi).
Je n’ai aucun problème. Ca marche même super bien.

J’ai ça sur la page que tu as donnée en lien :

Erreur d’analyse XML : entité non définie
Emplacement : http://www.espace-formateurs.org/infoad/backend.php3
Numéro de ligne 87, Colonne 20 : INFOAD ?
-------------------^

dee2 dit:quelle version de spip ?
On est en 1.7.2... J'ai déjà fait des mises à jour sans problème sous SPIP, mais là on a essayé de passer directement à la 1.8.2 et ça a tout foutu en l'air, on a même été obligé de faire une réinstallation "from scratch" et une backup de la bdd... :?
dee2 dit:... plein de trucs passionnants...
Merci beaucoup je vais regarder ce qu'on peut faire au niveau du fichier html...
Sanguo dit:J'ai ça sur la page que tu as donnée en lien :
Erreur d'analyse XML : entité non définie
Emplacement : http://www.espace-formateurs.org/infoad/backend.php3
Numéro de ligne 87, Colonne 20 : INFOAD ?
-------------------^
Oui, c'est bien le problème qu'on rencontre sous FireFox... :(
Merci à tous pour vos conseils ! :wink:

C’est peut-être à cause du “&” qui n’est echappé? Oui je crois que “&nbsp;” n’est pas une séquence d’échappement reconnue en XML.

Tu ne peux pas l’échapper en convertissant en " ", ça ne marchera pas, faut utiliser “&#160;”

Oops fausse manip… J’ai le cerveau mal échappé ce matin…

elv dit:C'est peut-être à cause du "&" qui n'est echappé? Oui je crois que "&nbsp;" n'est pas une séquence d'échappement reconnue en XML.
Tu ne peux pas l'échapper en convertissant en " ", ça ne marchera pas, faut utiliser "&#160;"
Oui, c'est effectivement ça... J'ai trouvé le problème en passant mon fil à la moulinette de www.feedvalidator.org... Le problème c'est que SPIP respecte les règles de typo française et insère automatiquement des espaces insécables devant les points d'interrogation... :roll:
Enfin, on a viré le point, ce qui est somme toute une solution assez rapide et visiblement efficace !
(pour le "&#160;" tu crois que ça marchera si je tape tout simplement "INFOAD&#160;?" dans le champs titre de mon article, sous SPIP? :? :?:

comme signalé au dessus il faut appliquer quelques filtres au textes issus de l’article pour que ça passe, le dernier code donnée est le backend-dist de spip 1.7.2, tu peux donc modifier ton fichier backend.html et ajouter les filtres

|textebrut|entites_html|entites_unicode
sans souci et écrire tes articles comme tu veux. Le contraire ne marcheras pas, le seul moyen de feinter la correction typographique de spip lors de la rédaction étant d’utiliser des balises
.