Flux RSS - plusieurs flux trier par date

Fermé
loic - 10 juin 2007 à 12:08
 loic - 10 juin 2007 à 12:44
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";
}
?>
A voir également:

3 réponses

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