[spip-dev] Pb de syndication

Bonsoir,

  (bon j'ai encore peur de dire une connerie mais je me lance :P)

  Je suis toujours sur la dernière version CVS

  Je syndique le backend suivant : http://navi.modelisme.com/back_dernier_article.php3

  dans la table spip_syndic_articles, je récupère la date + heure d'aujourd'hui pour tous les articles au lieu des dates données par le backend

  Cordialement

Jean-Luc Béchennec wrote:

Bonsoir,

    (bon j'ai encore peur de dire une connerie mais je me lance :P)

    Je suis toujours sur la dernière version CVS

    Je syndique le backend suivant : http://navi.modelisme.com/back_dernier_article.php3

    dans la table spip_syndic_articles, je récupère la date + heure d'aujourd'hui pour tous les articles au lieu des dates données par le backend

    Cordialement
--
Jean-Luc

Bonjour,

Dans ce back_dernier_article, il y a des lignes du type
       <date>2004-09-30 00:00:00</date>
dans chaque item. Or les fils RSS 0.91 attendent soit
       <pubDate>2004-09-30 00:00:00</pubDate>
soit
       <dc:date>2004-09-30 00:00:00</dc:date>
Le fichier backend-dist.html fournit <date> et aussi <dc:date>, mais cet exemple a fait l'impasse sur les deux formats proposés par les spécifications.

Pour tolérer ce format de date, il faudrait modifier la ligne 231 de inc_sites.php3 qui était:
'date2' => <[[:alpha:]]{2}:date>([^<]*)</[[:alpha:]]{2}:date>'.

J'ai essayé plusieurs variantes, mais elles ont des effets de bord, et obligeraient à changer aussi les regexp des autres formats. J'ai une solution , mais elle est plutôt sale, et je crois qu'on peut faire plus propre. Il se fait tard alors je craque. Je regarderai demain, si d'ici là quelqu'un d'autre n'a pas proposé de solution.

Cordialement

Yves Grenier

P.S. Je crains qu'on n'ait pas fini de trouver des variantes de syndications qui s'écartent des spécifs, hélas.

Ok ok

merci :slight_smile:

Bon, ce fichier m'appartiennent donc je vais le modifier. J'avoue ne pas avoir regardé les spécifs. Ce fichier est une modif du backend de spip 1.6 (je crois, vérification faite, il n'y avait effectivement que <date></date>). Je vais mettre ça à jour

Quoiqu'il en soit les versions antérieures à la 1.8b2 acceptaient seulement <date> (puisque ça fait un bout de temps que je travaille avec cette syndication). Ça risque de poser pb entre sites SPIP dans des versions différentes.

Cordialement

Jean-Luc Béchennec wrote:

Dans ce back_dernier_article, il y a des lignes du type
      <date>2004-09-30 00:00:00</date>
dans chaque item. Or les fils RSS 0.91 attendent soit
      <pubDate>2004-09-30 00:00:00</pubDate>
soit
      <dc:date>2004-09-30 00:00:00</dc:date>
Le fichier backend-dist.html fournit <date> et aussi <dc:date>, mais cet exemple a fait l'impasse sur les deux formats proposés par les spécifications.

Ok ok

merci :slight_smile:

Bon, ce fichier m'appartiennent donc je vais le modifier. J'avoue ne pas avoir regardé les spécifs. Ce fichier est une modif du backend de spip 1.6 (je crois, vérification faite, il n'y avait effectivement que <date></date>). Je vais mettre ça à jour

Dommage, je ne peux plus tester dessus une modif qui permet de prendre en compte cette balise. Pas grave, je refabrique un feed avec seulement <date>.
Test effectué; la modif qui ne coûte pas cher et permet d'être tolérant:
ajouter dans inc_sites.php3, après la ligne 318 les lignes:

    if (ereg("<date>([^<]*)</date>",$item[$i],$match))
      $la_date = $match[1];

Ce qui donne, si j'affiche les lignes avant et après:

  // Date
  $la_date = "";
  if (ereg("<date>([^<]*)</date>",$item[$i],$match))
    $la_date = $match[1];
  if (ereg($syndic_regexp['date1'],$item[$i],$match))
    $la_date = $match[1];
  else if (ereg($syndic_regexp['date2'],$item[$i],$match))
    $la_date = $match[1];

Cordialement

Yves Grenier

Test effectué; la modif qui ne coûte pas cher et permet d'être tolérant:
ajouter dans inc_sites.php3, après la ligne 318 les lignes:

                if (ereg("<date>([^<]*)</date>",$item[$i],$match))
                        $la_date = $match[1];

C'est dans la boîte; merci !

-- Fil