Forum Clubic

Flux RSS - plusieurs flux trier par date

Bonjour,

-L’histoire…
Je suis en train de faire une nouvelle version pour mon site.
Je cherche à faire un affichage des news, sur la page index, en flux rss.
Le site a plusieurs catègories : vidéos, photos, reportages…
A chaque fois que l’on ajoute une vidéo, un reportage… je voudrais que celà s’inscrive dans un flux RSS.

-Ce que je cherche :
Ensuite, sur la page index, il me faut un script qui puisse aller chercher dans plusieurs flux RSS les dernières infos et les mélanger entre eux par date de post… Je suis compréhensible?..
Je ne suis pas expert en flux RSS, j’ai passé ma nuit à essayer de comprendre et à trouver un script potable…Au final j’ai pas trouvé grand chose…
J’ai pris ce script là, et j’aimerais savoir comment le modifier pour qu’il aille chercher plusieurs flux et les trier, à moins que vous ayez un autre script simple à me proposer …
Merci d’avance :wink:

Le script :

<?php // // RSS to HTML webpage script v.1.2 // // Copyright 2002-2006 ExtraLabs Software // // Website: [www.extralabs.net...](http://www.extralabs.net) // Support: support@extralabs.net // // License: Freeware // This script may be used freely for business or personal use // include "./rss_export.php"; // Main Settings // // Your RSS feed: $rss_feed="http://www.legalizeskate.com/web/flux.xml"; // Template for the feed: $template="sample-template.rat"; // More info about date() function you can find here: [www.php.net...](http://www.php.net/manual/en/function.date.php.) $DateFormat="d M y, h:m:s"; if (isset($_REQUEST["RSSFILE"])) { $rss_feed = $_REQUEST["RSSFILE"]; } if (isset($_REQUEST["TEMPLATE"])) { $template = $_REQUEST["TEMPLATE"]; } $FeedMaxItems = 5000; if (isset($_REQUEST["MAXITEMS"])) { $FeedMaxItems = $_REQUEST["MAXITEMS"]; } $RandomItems=0; if (isset($_REQUEST["RANDOM"])) { $RandomItems = $_REQUEST["RANDOM"]; } error_reporting(E_ERROR); $rss = new RSS_export; $rss->cache_dir = './temp'; $rss->cache_time = 1200; $from = 1; $rss->date_format = $DateFormat; if ($rs = $rss->get($rss_feed)) { $theData = file($template); $count = 0; $from = -1; foreach($theData as $line) { if ((strstr($line,"NOCRLF=")) || (strstr($line,"NAME=")) || (strstr($line,"FILEEXT=")) || (strstr($line,"DATEFORMAT=")) || (strstr($line,"TIMEFORMAT="))) { $line=""; } $line=str_replace("%Copyright%", "$rs[copyright]\n", $line); $line=str_replace("%Copyright%", "", $line); $line=str_replace("%Language%", "$rs[language]\n", $line); $line=str_replace("%Language%", "", $line); $line=str_replace("%Editor%", "$rs[managingEditor]\n", $line); $line=str_replace("%Editor%", "", $line); $line=str_replace("%Webmaster%", "$rs[webMaster]\n", $line); $line=str_replace("%Webmaster%", "", $line); $line=str_replace("%FeedPubTime%", "$rs[lastBuildDate]\n", $line); $line=str_replace("%FeedPubTime%", "", $line); $line=str_replace("%Rating%", "$rs[rating]\n", $line); $line=str_replace("%Rating%", "", $line); $line=str_replace("%Docs%", "$rs[docs]\n", $line); $line=str_replace("%Docs%", "", $line); $line=str_replace("%FeedTitle%", "$rs[title]\n", $line); // $line=str_replace("%FeedLink%", "$rs[title]\n", $line); $line=str_replace("%FeedLink%", "$rs[link]\n", $line); $line=str_replace("%FeedDescription%", $rs[description], $line); $line=str_replace("<", "<", $line); $line=str_replace(">", ">", $line); $line=str_replace(" ", " ", $line); $line=str_replace(""", " ", $line); $line=str_replace("©", " ", $line); $line=str_replace("®", " ", $line); $line=str_replace("™", " ", $line); $line=str_replace("€", "?", $line); $line=str_replace("„", " ", $line); $line=str_replace("“", " ", $line); $line=str_replace("«", " ", $line); $line=str_replace("»", " ", $line); $line=str_replace("§", " ", $line); $line=str_replace("&", "&", $line); $line=str_replace("—", " ", $line); $line=str_replace("'", "'", $line); if ($rs['image_url'] != '') { $line=str_replace("%ImageItem%", "\"$rs[image_title]\"\n", $line); } else { $line=str_replace("%ImageItem%", "", $line); } $count = $count+1; if (strstr($line,"%BeginItemsRecord%")){ $from = $count; } if ($from == -1){ echo $line;} } $linecount = 0; foreach($rs['items'] as $item) { if ($RandomItems == 1) { $seeder = hexdec(substr(md5(microtime()), -8)) & 0x7fffffff; mt_srand($seeder); $c=mt_rand(0,1); if ($c == 0) { $seeder = hexdec(substr(md5(microtime()), -8)) & 0x7fffffff; mt_srand($seeder); continue; } } if ($linecount == $FeedMaxItems) { break; } ++$linecount; $strcount=0; foreach($theData as $line){ $strcount=$strcount+1; if ($strcount>=$from){ $line=str_replace("%BeginItemsRecord%", "", $line); $line=str_replace("%ItemTitle%", $item['title'], $line); $line=str_replace("%ItemLink%", $item['link'], $line); $line=str_replace("%ItemDescription%",$item['description'], $line); $line=str_replace("%ItemPubTime%", $item['pubDate'], $line); $line=str_replace("%ItemPubTime%", "", $line); $line=str_replace("%EndItemsRecord%", "", $line); $line=str_replace("<", "<", $line); $line=str_replace(">", ">", $line); $line=str_replace(" ", " ", $line); $line=str_replace(""", " ", $line); $line=str_replace("©", " ", $line); $line=str_replace("®", " ", $line); $line=str_replace("™", " ", $line); $line=str_replace("€", "?", $line); $line=str_replace("„", " ", $line); $line=str_replace("“", " ", $line); $line=str_replace("«", " ", $line); $line=str_replace("»", " ", $line); $line=str_replace("§", " ", $line); $line=str_replace("&", "&", $line); $line=str_replace("—", " ", $line); $line=str_replace("'", "'", $line); echo $line; } } } } else { echo "Error: An error occured while parsing RSS file. Please contact with us at: support@extralabs.net\n"; } ?>

Juste une petite question, les données de tes flux sont enregistrées dans ta base de donnée?

Sinon, il te suffit de lire tous tes flux, de les trier par date en par exemple relevant la date comme index d’un tableau, et après utiliser une fonction pour trier ton tableau dans l’ordre, et enfin n’affiquer que le nombre n de tes flux.
D’un point de vu théorique je dirais que c’est faisable, reste à voir les problèmes qui vont se poser :confused: !

PS : Désolé je n’ai pas le temsp de lire tout ton script :confused: !

Le truc, c’est que je veux afficher ça sur une page php ou htm, les flux sont un fichier xml sur le FTP, je ne m’y connais pas énormément.
Si quelqu’un peut m’aider…

Tu utilises php4 ou php5 ?

Je ne sais pas, comme tu veux…
Si tu peux m’aider :
*
Message edité le 10/06/2007 à 14:10

J’ai supprimé l’email (si tu veux du spam, remets le).

le forum sert de toute façon à donner de l’aide.

toujours aussi efficace ce moderateur sans-nom :slight_smile:

Modo anti spam, en voilà du spam, j’ai retourné un petit peu les idées de mon site, je vais le faire en php si je peux trouver un codeur…

cf. www.clubic.com…
Message edité le 11/06/2007 à 16:34

Inutile de flooder ce topic.

L’autre sert à ça.