Communauté Elgg francophone

Créer un compteAide  
Connexion
Aide, trucs et astuces
Le groupe pour poser ses questions et partager ses trucs et astuces sur Elgg

Pb de flux RSS (flux non valide)

Démarré par abFab le 13 décembre 2009 Réponses (3)

Bonjour,

 

Décidemment, Elgg a des problèmes avec ses flux rss. C'est dommage parce que je trouve que c'est un outil fondamental pour ce genre de site. Dans le cas qui m'intéresse, et que je vous sollicite parce que je n'arrive pas à trouver la solution... le flux des "telex" (cad du plugin "the wire"). Sur ce site, il se trouve ici:

http://elggfrance.inria.fr/mod/thewire/everyone.php

Passé au validateur, cela donne :

http://beta.feedvalidator.org/check.cgi?url=http%3A%2F%2Felggfrance.inria.fr%2Fmod%2Fthewire%2Feveryone.php

En fait on se trouve fac à 2 gros problèmes :

1. "Missing channel element: description"

Il manque la balise "<description>" entre "<channel>" et le premier "<item>".

==> Question : Où peut-on rajouter cette balise ?

 

2. "guid values must not be duplicated within a feed: http://elggfrance.inria.fr/pg/thewire/ClémentS"

Or, les "telex" ne sont pas numérotés, ce qui veut dire que deux telex postés par la même personne auront le même lien. Et ce n'est pas conforme. Donc il faudrait rajouter un numéro de telex au lien passé dans la balise guid. De façon à ce que cela ressemble à :

<guid isPermaLink='true'>http://elggfrance.inria.fr/pg/thewire/ClémentS#123</guid>

question : Comment faut-il faire pour ajouter le numéro de telex à la balise guid ?

 

Ces problèmes sont plutot génant, parce que, autant dans netvibes cela ne semble pas trop avoir de conséquence, autant dans thunderbird c'est assez catastrophique (on rapatrie le dernier telex et c'est tout).

Si vous avez des pistes.. a vot bon coeur :o))

Réponses

  • abFab le 13 décembre 2009

    Bonjour,

     

    Décidemment, Elgg a des problèmes avec ses flux rss. C'est dommage parce que je trouve que c'est un outil fondamental pour ce genre de site. Dans le cas qui m'intéresse, et que je vous sollicite parce que je n'arrive pas à trouver la solution... le flux des "telex" (cad du plugin "the wire"). Sur ce site, il se trouve ici:

    http://elggfrance.inria.fr/mod/thewire/everyone.php

    Passé au validateur, cela donne :

    http://beta.feedvalidator.org/check.cgi?url=http%3A%2F%2Felggfrance.inria.fr%2Fmod%2Fthewire%2Feveryone.php

    En fait on se trouve fac à 2 gros problèmes :

    1. "Missing channel element: description"

    Il manque la balise "<description>" entre "<channel>" et le premier "<item>".

    ==> Question : Où peut-on rajouter cette balise ?

     

    2. "guid values must not be duplicated within a feed: http://elggfrance.inria.fr/pg/thewire/ClémentS"

    Or, les "telex" ne sont pas numérotés, ce qui veut dire que deux telex postés par la même personne auront le même lien. Et ce n'est pas conforme. Donc il faudrait rajouter un numéro de telex au lien passé dans la balise guid. De façon à ce que cela ressemble à :

    <guid isPermaLink='true'>http://elggfrance.inria.fr/pg/thewire/ClémentS#123</guid>

    question : Comment faut-il faire pour ajouter le numéro de telex à la balise guid ?

     

    Ces problèmes sont plutot génant, parce que, autant dans netvibes cela ne semble pas trop avoir de conséquence, autant dans thunderbird c'est assez catastrophique (on rapatrie le dernier telex et c'est tout).

    Si vous avez des pistes.. a vot bon coeur :o))

  • Fabrice Collette le 14 décembre 2009

    Salut,

    Une partie des pb viennent du "é" de Clément ...à priori la version 1.7 devraient être plus clean sur le codage uft8 et devrait donc apporter des améiorations

    - Pour modifier le lien de the wire, ça se passe dans le fichier strat du plugin, la fonction

    function thewire_url($thewirepost) {
               
                global $CONFIG;
                return $CONFIG->url . "pg/thewire/" . $thewirepost->getOwnerEntity()->username;
               
            }

    à modifier en

    function thewire_url($thewirepost) {
               
                global $CONFIG;
                return $CONFIG->url . "pg/thewire/" . $thewirepost->getOwnerEntity()->username."/".$thewirepost->guid;
               
            }

    non testé mais ça devrait fonctionner

    - pour modifier le contenu du RSS

    pour l'instant the wire va chercher le script par default dans

    /views/rss/object/default.php

    si tu veux modifier le contenu du rss pour the wire, je te conseille de copier le script default.php, je renommer thewire.php et l'inserer dans un plugin dans un dossier /views/rss/thewire.php comme ça elgg ira chercher ce script là pour afficher les rss des objets "thewire". Tu peux donc le modifier à ta guise, sans influer sur les autres fluw rss

  • abFab le 29 décembre 2009

    Bon alors, j'ai enfin pu me pencher à nouveau sur le problème.

     

    1. Probleme du lien qui "must not be duplicated". Merci pour la solution ! Ca marche au poil, maintenant thunderbird me lit tous les posts.

    J'ai juste remplacé le "/" par "#".. parce que sinon le lien obtenu n'existe pas et on est renvoyé sur la page d'accvueil.

     

    2. Problème de la balise <description> manquante.

    En fait ce n'est pas dans ce fichier "/views/rss/object/default.php" qu'elle devrait se trouver mais plutot ici, "view/rss/pageshells/pageshells.php". Et comme ce fichier je l'avais déjà modifié parce qu'il y avait un bug (c'était ici), je pense que je vais à nouveau taper dedans :)

    En tous cas, encore merci pour les réponses !