Guest Vampyre Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 Bonjour à tous ! Et bien voilà, je suis actuellement en train d'effectuer une batterie de tests sous Spip 1.7.2 (il les passe bien pour l'instant)... Sauf pour un seul point relevé... Afin d'être rapidement compréhensible, je vous demande de bien vouloir vous rendre sur cette page et de bien observer. Pour ma part, je vois des caractères étranges en lieu et place des caractères accentués. Je me suis penché sur le problème, et ai vérifié mes paramètres linguistiques qui sont correctement placé (langue principale sur français, et Alphabet occidental (iso-8859-1)) J'ai voulu vérifier la compatibilité avec RSS Reader en flux sortant, et à mon grand désespoir, je ne peux afficher aucun flux à cause de ces caractères étranges. Voici la configuration sur lesquelles j'ai remarqué ce problème (Win Xp et 2000, Linux, IE, Firefox (linux et 2000 et xp) Je pense donc à une erreur quelque part, mais où ? Spip a été installé de base sur la 1.7.2 (aucune upgrade) Si vous décidez de surfer sur le site même, vous êtes les bienvenus, mais ne vous attendez pas à des prouesses, mon design est en cours de réalisation ! C'est donc le squelette de base de spip... Merci de votre temps et de vos réponses... Vampyre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 Bonjour, C'est vraisemblablement au fait que tu t'es laissé séduire par une rédaction d'article sous Word... et fait un copier/coller. Le problème de Word est qu'il utilise un jeu de caractères propre à Windows, et que les codes ne sont donc pas reconnus sur le Web. Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 Ben non... C'est ca le plus marrant... En fait, le site de base fonctionne sous Artiphp, et tous les articles ont été directement encodés sous Artiphp). Je suis en train de remonter tous mes articles sous Spip, et voilà ce que ca me donne Il est vrai que c'est du copier coller de mon artiphp vers spip. Mais bon... même en retapant manuellement les caractères, rien n'y fait ... Si ton diagnostic est bon, cela va se résorber au fil des nouveaux articles encodés directement sous spip ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 On a Spip 1.7.2 pour les publications du Hub, et ce problème n'apparaît pas. Si tu vidais ton cache Spip complètement ? Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 J'y avais également pensé, mais cela ne change rien. J'ai aussi initialisé totalement les langues sur unicode, puis rétabli le français en iso Rien ne change non plus... C'est étrange, car la syndication sous artiphp fonctionnait sans problème... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 Ca me rappelle un pb que j'ai eu avec mes propres fils rss, sur un spip 1.6 il y'a un an. Le problème et la solution trouvée : Il s'avère que spip, dans ses boucles, laisse passer les "html special chars". Pour une page web, ce n'est pas un problème, dans un flux xml, si... J'avais donc ajouter un filtre de mon cru pour éliminer le problème. Dans la 1.7.2, le filtre ad-hoc existe, mais il faut le rajouter dans le backend je crois, par défaut il n'existe pas dans le code (il faudra que je vérifie). Le problème provenait du fait que le backend fonctionne tant que l'on tape les articles en ISO pur. Les ennuis arrivent quand le contenu des articles comporte des specialchars ou autres caractères bizarres. Comme le dit Dan c'est un problème typique qui se voit avec des articles qui ont fait l'objet d'un copier coller. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 Ok, je commence à comprendre... Comme je faisais partie du staff de dev de Artiphp, j'ai replongé dans le code, car ton message m'a fait penser à quelque chose... Lorsque l'on publie un article dans artiphp, il est passé dans trois filtres successifs (html special char, strip slashes, entre autres). Ceci pourrait donc expliquer cela. Et mes textes sont en effet copiés collés depuis mes pages web (la source est impossible à réutiliser sans repasser par tous ces filtres (style bdd avec des trucs comme l\\\'espace Maintenant, je me pose une question. A partir du moment où j'utiliserai uniquement spip, en iso caractère français, aucun copié collé ne se fera plus. Le problème se stoppera-t-il de par lui même ? Et dans ce cas, au bout de X articles publiés sous Spip, le fichier XML redeviendrait-il standard ? Merci de vos réponses, et vraiment désolé de vous ennuyer avec si peu finalement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 Effectivement... Sauf si un tordu tape " " dans un article (ce qui arrive quand même). J'ai retrouvé ça dans mon fichier "mes_fonctions.php3"; function decode_htmlentities($texte) { // fonction qui enlève les entités html des flux spips. Utile pour les flux RSS et XML $corr=html_entity_decode($texte); return $corr; } Et la syntaxe d'utilisation dans le backend.html <BOUCLE_1(RUBRIQUES){id_secteur=103}{par titre}><item> <title>[(#TITRE|decode_htmlentities)]</title> <link>#URL_SITE_SPIP/#URL_RUBRIQUE</link> <description>[(#DESCRIPTIF|decode_htmlentities)]</description></item></BOUCLE_1></channel> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 Impeccable J'essayerai cela lorsque j'aurai reçu mon nouveau design Autre petite question, soit dit en passant... Je viens de tenter de faire une recherche avec le moteur de recherche standard. Or, il semble que rien ne fonctionne (j'ai essayé avec depa billaba, puis depa, puis billaba, puis star (qui se trouve dans presque tous mes articles)). Or le résultat de la recherche ne donne rien du tout. Je suis allé voir dans les tables, et les tables index sont toutes vides. J'ai vidé le cache, j'ai rajouté des articles, j'ai vérifié que le moteur de recherche était bien activé et... rien Rien n'y fait, mes tables restent mortellement vides. Y a-t-il une explication à celà ? (mon site doit au final recenser près de 1000 articles, et les visiteurs ont bien plus facile à taper un nom (je recherche Zam Wesell, donc je tape Zam Wesell, et je ne dois pas chercher dans la hiérarchie où je peux trouver l'article)). J'ai vu qu'il semblait que c'était un bug connu de la 1.7. Mais comment l'activer ? Décidément, suis-je fais pour Spip ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 (modifié) Le mystère s'épaissit... Je viens de créer deux articles, uniquement avec des à é è ù et autres... 100% créés dans Spip. Un sous IE, l'autre sous Firefox (je surfe toujours sur Fox) Résultat : Idem Je pense donc que je vais devoir implémenter ton code, en espérant qu'il fonctionne (ca m'ennuyerait profondément de ne pas avoir de flux rss correct, et vraiment bête de ne pas utiliser spip juste pour ca). J'ai regardé ton code, mais n'ai pas réussi à voir dans quels fichiers les insérer (je ne comprends même pas comment tu appelles ton fichier mes_fonctions.php3 Mais j'avoue, je ne me suis pas encore penché sur le code des templates, le mien n'étant pas encore terminé. Je vais donc bosser sur le code des templates, et voir comment je peux implémenter ton code sous spip... Arfff... Et y a qu'à moi que ca arrive Modifié 2 Juillet 2004 par Vampyre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 (modifié) Suis occupé avec ton code, mais résultat négatif pour l'instant... J'arrive à rajouter |decode_htmlentities après le titre, et le contenu :/ Dois-je déclarer quelque part mes_fonctions.php3 ? Après implémentation, voici mon fichier d'erreur : XML Parsing Error: undefined entity Location: http://www.fanwars.com/spip/backend.php3 Line Number 4, Column 28: <title>Erreur : filtre <b>« decode_htmlentities »</b> non défini</title> ---------------------------^ Et voici mon fichier backend <rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>[(#NOM_SITE_SPIP|texte_backend|decode_htmlentities)]</title> <link>#URL_SITE_SPIP/</link> <description></description> <language>#LANG</language> <image> <title>[(#NOM_SITE_SPIP|texte_backend|decode_htmlentities)]</title> <url>#URL_SITE_SPIP/IMG/ruboff0.gif</url> <link>#URL_SITE_SPIP/</link> <description></description> </image> <BOUCLE_10recents(ARTICLES){lang ?}{branche ?}{par date}{inverse}{0,10}{unique}> <item> <title>[(#TITRE|texte_backend|decode_htmlentities)]</title> <link>#URL_SITE_SPIP/#URL_ARTICLE</link> <date>#DATE</date> <description>[<img src="#URL_SITE_SPIP/IMG/(#LOGO_ARTICLE|fichier)" align="left" hspace="4" vspace="4"> ][(#INTRODUCTION|texte_backend|decode_htmlentities)]</description> <author><BOUCLE_auteurs(AUTEURS){id_article}{", "}>[(#NOM|texte_backend|decode_htmlentities)]</BOUCLE_auteurs></author> <dc:date>[(#DATE|date_iso)]</dc:date> <dc:format>text/html</dc:format> <dc:language>#LANG</dc:language> <dc:creator><BOUCLE_auteursb(AUTEURS){id_article}{", "}>[(#NOM|texte_backend|decode_htmlentities)]</BOUCLE_auteursb></dc:creator> </item> </BOUCLE_10recents> <BOUCLE_tres_recents(ARTICLES){lang ?}{branche ?}{par date}{inverse}{age<3}{unique}> <item> <title>[(#TITRE|texte_backend|decode_htmlentities)]</title> <link>#URL_SITE_SPIP/#URL_ARTICLE</link> <date>#DATE</date> <description>[<img src="#URL_SITE_SPIP/IMG/(#LOGO_ARTICLE|fichier)" align="left" hspace="4" vspace="4"> ][(#INTRODUCTION|texte_backend|decode_htmlentities)]</description> <author><BOUCLE_auteurs_t(AUTEURS){id_article}{","}>[(#NOM|texte_backend|decode_htmlentities)]</BOUCLE_auteurs_t></author> <dc:date>[(#DATE|date_iso)]</dc:date> <dc:format>text/html</dc:format> <dc:language>#LANG</dc:language> <dc:creator><BOUCLE_auteurs_tb(AUTEURS){id_article}{", "}>[(#NOM|texte_backend|decode_htmlentities)]</BOUCLE_auteurs_tb></dc:creator> </item> </BOUCLE_tres_recents> </channel> </rss> Vous voyez une erreur quelque part ? Merci beaucoup pour votre extrême patience Modifié 2 Juillet 2004 par Vampyre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 2 Juillet 2004 Partager Posté 2 Juillet 2004 en fait, il suffit de créer un fichier appelé "mes_fonctions.php3" pour ajouter tes propres filtres à SPIP. Le code mentionné plus haut, il te suffit de l'intégrer dans ce nouveau fichier, tu le places dans le répertoire où sont situés tes squelettes spip, et hop ! le tour est joué Tu n'as rien à paramétrer, spip s'attend à trouver des fonctions personnalisées dans ce fichier... Les nouvelles erreurs que tu as viennent du fait que tu utilises un filtre inconnu. Elles devraient disparaître une fois la fonction ajoutée dans le fichier mes_fonctions... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 3 Juillet 2004 Partager Posté 3 Juillet 2004 (modifié) Bon, j'ai tout repris depuis zéro, et j'ai un nouveau type d'erreur à présent... XML Parsing Error: undefined entity Location: http://www.fanwars.com/spip/backend.php3 Line Number 23, Column 406:<br />Les v�hicules utilitaires de surface utilis�s pour le transport de passagers et de cargo, les skiff, sont de simples plateformes � r�pulseur qui flottent gr�ce aux champs antigravit�. Jabba le Hutt utilisait un skiff cargo de 9m20 de long comme accompagnateur de son �norme barge � voiles. A simple pilote pouvait tenir la barre de direction � l'arri�re du skiff et guidait le v�hicule en manipulant (...)</description> -----------------------------------------------------------------------------------------------^ Visiblement, c'est pas ca le problème Décidément A moins que ce ne soit possible que sur les nouveaux articles ? Je teste ca rapidos... Modifié 3 Juillet 2004 par Vampyre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 3 Juillet 2004 Partager Posté 3 Juillet 2004 Il ne reconnait pas le filtre, donc il y'a forcément une erreur de syntaxe quelque part... Quelle version de php utilises tu ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 3 Juillet 2004 Partager Posté 3 Juillet 2004 Oups, j'ai édité mon post, pendant que tu y répondais... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 3 Juillet 2004 Partager Posté 3 Juillet 2004 En fait cela semble fonctionner Je viens de créer un nouveau post avec éèàù, et on dirait qu'il est passé à la ligne suivante. Donc ca marche maintenant sur les nouveaux posts Je te tiendrai au courant lorsque j'aurai écrit assez d'articles pour confirmer que le flux fonctionne Merci énormément de ton aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 3 Juillet 2004 Partager Posté 3 Juillet 2004 Il est évident que tes articles sont tapés dans une autre table de caractères que celle que tu prévois dans le fichier xml généré par le backend ! Vérifie que tu as bien un attribut encoding défini dans la balise <xml à la première ligne. ex : encoding="iso-8859-1" soit la table de caractères européennes, avec les accents Vérifie que tu utilises bien cette table de caractères dans ton site... Ta sortie ressemble plutôt à un codage simplifié, tous les caractères supérieurs à 127 ne sont pas reconnus ? Ou un codage mac peut être ? Tant que tu envoies des codes non reconnus dans un flux xml, tu auras ces messages d'erreur. Et tu as bien des htmlspecialchars à supprimer en plus. "v�hicule en manipulant (...)" Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 4 Juillet 2004 Partager Posté 4 Juillet 2004 Salut ! Bon, je viens de placer le code pour encoding="iso....", car mon feed commençait par <rss....> au lieu de <?xml..... ?> Maintenant, cela me donne une nouvelle erreur... :/ Décidément... XML Parsing Error: junk after document elementLocation: http://www.fanwars.com/spip/backend.php3 Line Number 2, Column 1:<b>Parse error</b>: parse error, unexpected T_STRING in <b>/home/www/vampyre/www/spip/CACHE/0/spip-backend.1c2399.NEW</b> on line <b>2</b><br /> ^ Commence à faire chier gravos ce truc lol... Je suis même allé à éditer le rss de webmaster-hub pour m'en inspirer, et j'ai carrément recopié les lignes de codes à l'intérieur de ton fichier xml... Et j'obtiens cette erreur... Aaaaarrrrrrggggghhhhhhh... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 4 Juillet 2004 Partager Posté 4 Juillet 2004 Erreur typique Euh, tu n'aurais pas écrit un truc du genre echo "<?xml" dans ton code ? Parce que c'est une mauvaise idée... <? dans une page php, c'est la balise php... Donc ton backend génère une ligne, puis une erreur de syntaxe php en ligne 2... déjà ça, ça marche mieux : echo "<"."?xml Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 4 Juillet 2004 Partager Posté 4 Juillet 2004 Bon, voici ce que j'ai placé dans mon code backend echo "<"."?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"<rss version="0.91" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>[(#NOM_SITE_SPIP|texte_backend)]</title> <link>#URL_SITE_SPIP/</link> <description></description> <language>fr-fr</language> <image> <title>[(#NOM_SITE_SPIP|texte_backend)]</title> <url>#URL_SITE_SPIP/IMG/ruboff0.gif</url> <link>#URL_SITE_SPIP/</link> <description></description> </image> <BOUCLE_10recents(ARTICLES){par date}{inverse}{0,10}{unique}> <item> <title>[(#TITRE*|texte_backend)]</title> <link>#URL_SITE_SPIP/#URL_ARTICLE</link> <date>#DATE</date> <description>[<img src="#URL_SITE_SPIP/IMG/(#LOGO_ARTICLE|fichier)" align="left" hspace="4" vspace="4"> ][(#INTRODUCTION*|texte_backend)]</description> <author><BOUCLE_auteurs(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteurs></author> <dc:date>[(#DATE|date_iso)]</dc:date> <dc:format>text/html</dc:format> <dc:language>fr-fr</dc:language> <dc:creator><BOUCLE_auteursb(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteursb></dc:creator> </item> </BOUCLE_10recents> </channel> </rss> Je suis allé voir dans la BDD, et mes titres sont bien inscrits avec les accents dans la BDD. Il semble donc que ce soit un problème d'interprétation entre la BDD et le XML. J'ai donc tenté de placer la balise * (conformément au manuel de référence de spip, tentant donc de bypasser les corrections et filtres de spip pour afficher directement le contenu de la BDD). Mais le problème persiste toujours. Avec le fichier en l'état, j'obtiens XML Parsing Error: syntax error Location: http://www.fanwars.com/spip/backend.php3 Line Number 1, Column 1:echo "<"."?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">" ^ De même si je place echo "<"."?xml version="1.0" encoding="iso-8859-1"?".">" Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 4 Juillet 2004 Partager Posté 4 Juillet 2004 Ah oui mais non ! echo c'est du php, donc il faut placer l'instruction entre des balises <?php et ?> sans oublier le ; à la fin <?php echo "<"."?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest Vampyre Posté 4 Juillet 2004 Partager Posté 4 Juillet 2004 YOUHOUUUUU C'est bon !!!!! Plus rien bouger !!! Ca marche ! J'ai mes accents ! lollll Ouffff... ce fut dur dur dur ! lollll Un énorme merci à toi Cariboo... Me reste plus qu'un truc qui ne fonctionne pas dans mon spip, mais je vais ouvrir un autre post plus adapté Super gros merci ! Encore une fois, j'ai appris de nouvelles choses... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant