Flux RSS - plusieurs flux trier par date

loic -  
 loic -
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 ..

Le script :
<?php
//
// RSS to HTML webpage script v.1.2
//
// Copyright 2002-2006 ExtraLabs Software
//
// Website: 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: https://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%", "<a href=\"$rs[link]\">$rs[title]</a>\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%", "<a href=\"$rs[image_link]\"><img src=\"$rs[image_url]\" alt=\"$rs[image_title]\" vspace=\"1\" border=\"0\" /></a>\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";
}
?>

3 réponses

bg62 Messages postés 26245 Date d'inscription   Statut Modérateur Dernière intervention   2 425
 
0
loic
 
Merci, mais ca ne me montre pas comment afficher plusieurs flux sur une page php
0
Utilisateur anonyme
 
pourquoi n'utilsie tu pas plutot une base de données qui sera plus simple à utiliser que des flux rss ?
0
loic
 
Pour la base de données il faut comprendre le php...
Si quelqu'un peut m'aider :
lik_slam@hotmail.com
0