Mes photos de montagne

Texte à méditer :  Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis, Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez... il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même...   Bernard Werber
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 21988 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

Améliorez votre référencement en créant une sitemap pour 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: 1352672  

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 ^