doomer2 Posté 11 Novembre 2004 Posté 11 Novembre 2004 Bonjour, je possede une table dont la structure est la suivante : CREATE TABLE `table_news` ( `id` bigint(9) NOT NULL auto_increment, `news_date` varchar(50) NOT NULL default '', `news_heure` time NOT NULL default '00:00:00', `news_objet` varchar(255) NOT NULL default '', `news_texte` blob NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM; Et je voudrais crer un fil RSS dynamique qui permet de mettre mais nouvelles infos à jour automatiquement. Quelqu'un sait il comment faire ?
doomer2 Posté 22 Novembre 2004 Auteur Posté 22 Novembre 2004 Le but est de récuperer mes données et de creer mon fichier xml dynamiquement. Une personne pourrait elle m'aider à réaliser cela en sachnat que je suis le seul redacteur sur le site et que ma table est decrite sur le post au dessus. Merci
Findel Posté 22 Novembre 2004 Posté 22 Novembre 2004 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 : <?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
doomer2 Posté 22 Novembre 2004 Auteur Posté 22 Novembre 2004 Ce bout de code PHP est à ajouté au moment ou je créé une nouvelle news ?
Findel Posté 22 Novembre 2004 Posté 22 Novembre 2004 Yep, à chaque fois que tu ajoute un news, après l'avoir enregistrée, tu execute ce code pour générer un ficheir qui contiendra les 30 dernieres news. Ca sera "un fichier cache" vers lequel les clients viendront se connecter
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant