Findel
lundi 22 novembre 2004 à 22:32
Voilà un bout de code, je pense qu'il devrait faire l'affaire, à toi de l'adapter pour le manquant, en sachant que perso j'ai un champ 'date' qui contient la date de publication de la news au format timestamp (généré par un time() en php).
Il faut aussi que tu remplace les passages entre accolades :
CODE
<?php
$fichierrss = './news.rss';
// recup de la date de la news la plus recente
$lastrss = time();
if ($requete = _AT_mysql_query('SELECT MAX(date) AS date FROM news')) {
list($lastrss) = _AT_mysql_fetch_row($requete);
}
// generation du fichier rss
$rss = fopen($fichierrss, 'w');
fwrite($rss, '<'.'?xml version="1.0" encoding="iso-8859-15" ?'.'>
<rss version="2.0">
<channel>
<title>{Titre du site} - News</title>
<link>{Url vers les news de ton site}</link>
<description>{Description du fil RSS}</description>
<language>fr</language>
<pubDate>'.date('r', $lastrss).'</pubDate>
<lastBuildDate>'.date('r').'</lastBuildDate>
');
// boucler sur les news pour générer un entrée pour chacune
if ($requete = _AT_mysql_query('SELECT * FROM news ORDER BY date DESC LIMIT 0, 30')) {
while ($news = _AT_mysql_fetch_assoc($requete)) {
// au cas ou y'aurait des caracteres incompatibles avec XML
$news['news_objet'] = htmlspecialchars($news['news_objet']);
$news['news_texte'] = htmlspecialchars($news['news_texte']);
fwrite($rss, ' <item>
<title>'.$news['news_objet'].'</title>
<author>{Auteur des news}</author>
<link>{Lien direct vers la news sur ton site}</link>
<description>'.$news['news_texte'].'</description>
<pubDate>'.date('r', $news['date']).'</pubDate>
<guid>{Lien direct vers la news sur ton site}</guid>
</item>
');
}
}
fwrite($rss, ' </channel>
</rss>');
fclose($rss);
?>
Ensuite, il te restera à ajouter ceci sur tes pages de news et d'accueil :
<link rel="alternate" type="application/rss+xml" title="{Nom du site} - News" href="/news.rss" />
Si on considère que le fichier aura été généré à la racine du site