PenGuppY site de Penanders

Texte à méditer :  Deux choses sont infinies : l'univers et la bêtise humaine, en ce qui concerne l'univers, je n'en ai pas acquis la certitude absolue.   Albert Einstein
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 20661 fois


Imprimer l'article Imprimer l'article

react.gifRéactions à cet article


Réaction n°2 

par hpsam le 08/08/2006 @ 11:15

Effectivement, le
\n
disparait quand je valide l'article, obligé de mettre


\\n
 . Pour ton code, il y a effectivement un point en trop devant FormatDate :


$rsstxtl1 .= "     <pubDate>".EncodeISO(FormatDate($creadate),$ISOcode)."</pubDate>\n";

Le problème est que la date doit être a un format standard (ex : Mon, 07 Aug 2006 13:57:08 +0100) qui n'est pas celui renvoyé par FormatDate, qui elle renvoie la date au format GuppY (ex : 07/08/2006 @ 13:57).

La même variable étant utilisée, la date de l'élément (différente de la date globale du flux) est la même que celle présente dans le titre.

Par contre, il y a un système de cache, pour que les modifs soit visible, il faut recréer le flux en ajoutant une nouvelle.


Réaction n°1 

par marcB le 08/08/2006 @ 10:18

hello

merci d'avoir créer un article spécial !

j'ai testé hier sur un de mes sites..et j'ai eu quelques soucis....au départ rien n'était modifié, j'ai rajouté le \n mais toujours rien.

et puis en suite cela a marché mais systématiquement la date était du flux était Sat, 03 Feb 2001 03:05:00 +0100

au départ moi j'était parti sur une formule de ce type (enreprenant une partie de la balsie title du fichier funcrss de guppy) mais ca marche pas non plus et ca bloque même le site..(a cause d'un ' ou d'un .)

$rsstxtl1 .= "     <pubDate>".EncodeISO(.FormatDate($creadate),$ISOcode)."</pubDate>\n";

merci de votre avis!


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

Avec Total RSS mettez du flux dans votre GuppY !

[RSS 2.0]






 
Liste des membres Membres : 258

Votre pseudo :

Mot de passe :

[ Mot de passe perdu ? ]


[ Devenir membre ]


  Membre en ligne :
  Anonyme en ligne : 1

Total visites Total visites: 1307984  

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 ^