Pantzer

Texte à méditer :  Directeur pompes funèbres cherche personnel ayant le sens de l'humour, connaissant particulièrement la mise en boîte.   Pierre Dac
Guppy 4.5.x - RSS : Ajout date de publication

Description :


Cet article traite de la technique pour ajouter la balise de date de publication au flux RSS natif de GuppY.

Cet article fait suite à une question du forum officiel, où il n'était pas possible de mettre correctement le code dans le message.

La logique :


On va modifier le fichier inc/funcrss.inc de façon à rajouter dans chaque item la balise PubDate.

La pratique :


error.gif Avant toutes modifications des fichiers, être sur d'en avoir une sauvegarde.

Ouvrir le fichier inc/funcrss.inc et trouver :

    for ($i = 0; $i < Min(count($dbwork1),$serviz[37]); $i++) {
      ReadDoc(DBBASE.$dbwork1[$i][1]);
      $rsstxtl1 .= "   <item>\n";
      $rsstxtl1 .= "     <title>".EncodeISO($fieldb1." - ".$par1." ".$author." ".$le1." ".FormatDate($creadate),$ISOcode)."</title>\n";
      $rsstxtl1 .= "     <link>".$sito."news.php?lng=".$lang[0]."&amp;pg=".$fileid."</link>\n";
      $rsstxtl1 .= "     <description>".EncodeISO($fieldc1,$ISOcode)."</description>\n";
      $rsstxtl1 .= "   </item>\n";
      if ($lang[1] != "") {
        $rsstxtl2 .= "   <item>\n";
        $rsstxtl2 .= "     <title>".EncodeISO($fieldb2." - ".$par2." ".$author." ".$le2." ".FormatDate($creadate),$ISOcode)."</title>\n";
        $rsstxtl2 .= "     <link>".$sito."news.php?lng=".$lang[1]."&amp;pg=".$fileid."</link>\n";
        $rsstxtl2 .= "     <description>".EncodeISO($fieldc2,$ISOcode)."</description>\n";
        $rsstxtl2 .= "   </item>\n";
      }


Remplacer par :

    for ($i = 0; $i < Min(count($dbwork1),$serviz[37]); $i++) {
      ReadDoc(DBBASE.$dbwork1[$i][1]);
      $rsstxtl1 .= "   <item>\n";
      $rsstxtl1 .= "     <title>".EncodeISO($fieldb1." - ".$par1." ".$author." ".$le1." ".FormatDate($creadate),$ISOcode)."</title>\n";
      $rsstxtl1 .= "     <link>".$sito."news.php?lng=".$lang[0]."&amp;pg=".$fileid."</link>\n";
      $rsstxtl1 .= "     <description>".EncodeISO($fieldc1,$ISOcode)."</description>\n";
      $rsstxtl1 .= "     <PubDate>".date("r",strtotime(ereg_replace('^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$','\\2/\\3/\\1 \\4:\\5:00 +0200', $creadate)))."</pubDate>\n";
      $rsstxtl1 .= "   </item>\n";
      if ($lang[1] != "") {
        $rsstxtl2 .= "   <item>\n";
        $rsstxtl2 .= "     <title>".EncodeISO($fieldb2." - ".$par2." ".$author." ".$le2." ".FormatDate($creadate),$ISOcode)."</title>\n";
        $rsstxtl2 .= "     <link>".$sito."news.php?lng=".$lang[1]."&amp;pg=".$fileid."</link>\n";
        $rsstxtl2 .= "     <description>".EncodeISO($fieldc2,$ISOcode)."</description>\n";
        $rsstxtl2 .= "     <PubDate>".date("r",strtotime(ereg_replace('^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$','\\2/\\3/\\1 \\4:\\5:00 +0200', $creadate)))."</pubDate>\n";
        $rsstxtl2 .= "   </item>\n";
      }
    }

La date utilisée est celle de création, pour utiliser celle de modification remplacer $createdate par $moddate dans les 2 lignes ajoutées (164 et 171)

08/08/2006 : Petite correction, les backslash n s'étant transformé en n.

09/08/2006 : les problèmes viennent du fait que les et \ disparaissent joyeusement du code quand je valide l'article. Je vais doubler les simple et quadrupler les doubles pour qu'il en reste le bon nombre à la fin.


Date de création : 07/08/2006 @ 15:05
Dernière modification : 09/08/2006 @ 10:55
Catégorie : Guppy 4.5.x
Page lue 22435 fois


Imprimer l'article Imprimer l'article

react.gifRéactions à cet article


Réaction n°12 

par iatice le 31/01/2010 @ 16:18

Bonjour,
Les flux RSS s'affichent correctement sur notre site mais les dates posent pb.Les dates de certains flux sont reconnues, d'autres pas.
Il semblerait que ce soit un pb de format de dates (pubdate / dc:date)
Quelqu'un aurait il une idée?


Edit du webmaster : Merci de passer par le forum, cette question n'étant pas par rapport à l'article.
Pour info le flux RSS en question n'est pas conforme, il ne fournit pas le champ date. Problème à voir avec le fournisseur du flux.


Réaction n°11 

par marcoB le 16/08/2006 @ 14:54

oups...en supprimmant le e dans la balise guid bien sur ...dez

Réaction n°10 

par marcB le 10/08/2006 @ 14:04

Salut,

 

Alors moi aussi tout marche impeccablement, merci vraiment de ton aide, ça fait plaisir.

 

Pour Tonio74,

 

J’ai rajouté aussi la balise guide au flux rss natif de mon guppy, je sais plus trop le code mais de mémoire ce devait être :

 

$rsstxtl1 .= "     <guid isPermalink=”true”>".$sito."news.php?lng=".$lang[0]."&pg=".$fileid."</guid>\n";  

  

  $rsstxtl2 .= "     <guid isPermalink=”true”>".$sito."news.php?lng=".$lang[1]."&pg=".$fileid."</guid>\n";

 

je crois que tu peux te contenter de <guid>, permalink est pas obligatoire.

 

A+
Merci encore

Edit HPSAM : Balises corrigés


Réaction n°9 

par hpsam le 10/08/2006 @ 10:12

La balise <guid> est importante dans le cas où l'url du documents n'est pas permanente, ce qui n'est pas le cas de GuppY.

Si vraiment on le veut, il suffit de mettre dedans le même contenu que la balise <link>.


Réaction n°8 

par Tonio74 le 09/08/2006 @ 21:59

MERCI BEAUCOUP CA MARCHE

j'en ai profité pour modifier la balise title pour avoir que le titre et pas la date.
par conte dans le flux initial de guppy, il manque la balise guide apparemment ùmais elle est pas essentiel, c'est date la balise assez importante.
j'ai trouvé une adresse de validation des flux :*
http://feedvalidator.org/

MERCI ENCORE

Réaction n°7 

par hpsam le 09/08/2006 @ 11:07

Bon en fait je viens de relire mon code, le problème est dans l'expression régulière, les backslash disparaissant quand je valide les modification de l'article. Donc ceux devant les n ont disparu lors de la création et les doubles dans l'expression régulière ont disparu suite aux deux éditions. Il doit y avoir un stripslash de plus que les addslash.

Je viens d'éditer l'article et de doubler le nombre de slash (2 pour 1 et 4 pour 2) maintenant le code est correct et correspond à ce que je voulais.

Manuel PHP : strtotime() essaye de lire une date au format anglais US dans la chaîne time, et de la transformer en timestamp Unix. => d'où l'expression régulière pour transformer la date Guppy (AAAAMMJJhhmm) en date US


Réaction n°6 

par marcoB le 09/08/2006 @ 10:03

mon bout de code ca devait etre un truc du genre

.date("D, d M Y H:i:s", strtotime($creadate)).;

ou au moins avec D, d M Y H:i:s mais du coup 1970 ca colle pas (lol)


Réaction n°5 

par marcoB le 09/08/2006 @ 09:29

oui même petit problème pour moi et du coup j'ai cherché à modifier la ligne de code rajouté..ce qui ma donné comme date de craétion... 1970 !!!!!

Réaction n°4 

par tonio74 le 08/08/2006 @ 20:22

hello
En testant aussi sur mon site ta solution, la date de toutes les nouvelles se met automatiquement à
Sat, 03 Feb 2001 03:05:00 +0100 cry
a tu une idée ?est ce que cela ne vient t'il pas du code et du '2/3/1 4:5:00 +0200' ?

Réaction n°3 

par marcoB le 08/08/2006 @ 12:03

Merci de ta réponse,

 

Je re-teste donc ce soir,

 

Mais hier même en créant une autre nouvelle, la date de publication dans le flux rss était : Sat, 03 Feb 2001 03:05:00 +0100 pr chaque nouvelle (en version 4.5.11)

 

Et je crois même que sur un flux sur un autre site, on ne voyait pas la date (en version 4.5.14) apparaître même avec une nouvelle nouvelle…et en vidant le cache.

 

 

Je reteste tout ce soir chez moi et je te tiens au courant.

Merci encore

DébutPrécédent [ 1 2 ] SuivantFin

Améliorez votre référencement en créant une sitemap pour votre GuppY.

[RSS 2.0]






 
Liste des membres Membres : 259

Votre pseudo :

Mot de passe :

[ Mot de passe perdu ? ]


[ Devenir membre ]


  Membre en ligne :
  Anonyme en ligne : 1

Total visites Total visites: 1362675  

Record connectés :
Record connectés :Cumulé : 384

Le 03/08/2010 @ 11:53


Webmaster - Infos

mad AUCUN support par mail.
Utilisez le forum
biggrin pour signaler des bugs ou pour poser des questions.

^ Haut ^