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 :
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]."&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]."&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]."&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]."&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.