Glider.js et RSS
louis1984
Messages postés
344
Statut
Membre
-
louis1984 Messages postés 344 Statut Membre -
louis1984 Messages postés 344 Statut Membre -
Bonjour,
J'utilise le slider "glider.js" sur mon site pour afficher sur chaque slide un article qui vient d'une source externe via plusieurs flux RSS. J'ai en tout 4 slides dans mon slider, et j'aimerais qu'ils m'affichent les 4 articles les plus recents de l'ensemble des flux RSS.
Le probleme c'est que je suis nul en php et que je sais pas comment faire.
Quelqu'un pourrait-il m'aider?
Voici mon code:
<div id="contenu_homepage">
<div id="my-glider">
<div class="controls">
<a href="#article1">1</a> |
<a href="#article2">2</a> |
<a href="#article3">3</a> |
<a href="#article4">4</a>
</div>
<div id="glider-arrow-left"><a href="#" onclick="my_glider.previous();return false;"><</a></div>
<div id="glider-arrow-right"><a href="#" onclick="my_glider.next();return false">></a></div>
<div class="scroller">
<div class="content">
<?php
$urls = array(
'http://www.lemonde.fr/rss/sequence/0,2-3234,1-0,0.xml',
'http://www.lemonde.fr/rss/fil/0,57-0,64-1100142,0.xml',
'http://rss.feedsportal.com/c/499/f/413863/index.rss',
'http://rss.feedsportal.com/c/499/f/413839/index.rss',
'http://www.capital.fr/rss2/feed/fil-bourse.xml',
'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml' );
$nb_titres_par_url = 4;
$dom = new DOMDocument();
$i = 0;
foreach($urls as $url) { $dom->load($url); foreach($dom->getElementsByTagName('item') as $item) { $i++;
echo "\t\t\t".'<div class="section" id="article'.$i.'">'."\n";
echo "\t\t\t\t".'<h4>'.trim($item->getElementsByTagName('title')->item(0)->nodeValue).'</h4>'."\n";
echo "\t\t\t\t".trim($item->getElementsByTagName('description')->item(0)->nodeValue)."\n";
echo "\t\t\t".'</div>'."\n\n"; if(($i%$nb_titres_par_url) == 0) { break; } } }
?>
</div>
</div>
<script type="text/javascript" charset="utf-8">
var my_glider = new Glider('my-glider', {duration:0.4});
</script>
</div>
</div>
Merci par avance pour votre aide.
J'utilise le slider "glider.js" sur mon site pour afficher sur chaque slide un article qui vient d'une source externe via plusieurs flux RSS. J'ai en tout 4 slides dans mon slider, et j'aimerais qu'ils m'affichent les 4 articles les plus recents de l'ensemble des flux RSS.
Le probleme c'est que je suis nul en php et que je sais pas comment faire.
Quelqu'un pourrait-il m'aider?
Voici mon code:
<div id="contenu_homepage">
<div id="my-glider">
<div class="controls">
<a href="#article1">1</a> |
<a href="#article2">2</a> |
<a href="#article3">3</a> |
<a href="#article4">4</a>
</div>
<div id="glider-arrow-left"><a href="#" onclick="my_glider.previous();return false;"><</a></div>
<div id="glider-arrow-right"><a href="#" onclick="my_glider.next();return false">></a></div>
<div class="scroller">
<div class="content">
<?php
$urls = array(
'http://www.lemonde.fr/rss/sequence/0,2-3234,1-0,0.xml',
'http://www.lemonde.fr/rss/fil/0,57-0,64-1100142,0.xml',
'http://rss.feedsportal.com/c/499/f/413863/index.rss',
'http://rss.feedsportal.com/c/499/f/413839/index.rss',
'http://www.capital.fr/rss2/feed/fil-bourse.xml',
'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml' );
$nb_titres_par_url = 4;
$dom = new DOMDocument();
$i = 0;
foreach($urls as $url) { $dom->load($url); foreach($dom->getElementsByTagName('item') as $item) { $i++;
echo "\t\t\t".'<div class="section" id="article'.$i.'">'."\n";
echo "\t\t\t\t".'<h4>'.trim($item->getElementsByTagName('title')->item(0)->nodeValue).'</h4>'."\n";
echo "\t\t\t\t".trim($item->getElementsByTagName('description')->item(0)->nodeValue)."\n";
echo "\t\t\t".'</div>'."\n\n"; if(($i%$nb_titres_par_url) == 0) { break; } } }
?>
</div>
</div>
<script type="text/javascript" charset="utf-8">
var my_glider = new Glider('my-glider', {duration:0.4});
</script>
</div>
</div>
Merci par avance pour votre aide.
A voir également:
- Glider.js et RSS
- Tiny tiny rss - Télécharger - Flux RSS
- Rss owl - Télécharger - Flux RSS
- Rss bandit - Télécharger - Web & Internet
- Rss to mp3 - Guide
- Flux rss - Forum Webmastering
3 réponses
Sur un autre forum quelqu'un m'a donner le code suivant:
<?php
//
// DEBUT CONFIG
//
$cache_expire = 3600; // 60 secondes * 60 minutes (ici 1 heure)
$cache_path = 'cache/les_flux_rss.txt'; // chemin vers le fichier des news mis en cache
$cache_nb_news = 4; // le nombre de news à mettre en cache
$urls = array(
'http://www.lemonde.fr/rss/sequence/0,2-3234,1-0,0.xml',
'http://www.lemonde.fr/rss/fil/0,57-0,64-1100142,0.xml',
'http://rss.feedsportal.com/c/499/f/413863/index.rss',
'http://rss.feedsportal.com/c/499/f/413839/index.rss',
'http://www.capital.fr/rss2/feed/fil-bourse.xml',
'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml'
);
//
// FIN CONFIG
//
if(!file_exists($cache_path) OR filemtime($cache_path) < time() - $cache_expire){
$tab = array();
foreach($urls as $rss){
$xml = simplexml_load_file($rss);
$rss_title = $xml->channel->title;
$rss_link = $xml->channel->link;
foreach($xml->xpath('channel/item') as $info)
$tab[strtotime($info->pubDate)] = array('titre' => addslashes($info->title), 'lien' => addslashes($info->link), 'titre_flux' => addslashes($rss_title), 'lien_flux' => addslashes($rss_link), 'date' => strtotime($info->pubDate));
}
krsort($tab);
$tab = array_slice($tab, 0, $cache_nb_news);
file_put_contents($cache_path, serialize($tab));
}
else
$tab = unserialize(file_get_contents($cache_path));
?>
<div id="contenu_homepage">
<div id="my-glider">
<div class="controls">
<a href="#article1">1</a> |
<a href="#article2">2</a> |
<a href="#article3">3</a> |
<a href="#article4">4</a>
</div>
<div id="glider-arrow-left"><a href="#" onclick="my_glider.previous();return false;"><</a></div>
<div id="glider-arrow-right"><a href="#" onclick="my_glider.next();return false">></a></div>
<div class="scroller">
<div class="content"><?php echo 'Le '.date('d/m/Y à H:i', $tab[0]['date']).' : <a href="'.stripslashes($tab[0]['lien']).'">'.stripslashes($tab[0]['titre']).'</a> du flux : <a href="'.stripslashes($tab[0]['lien_flux']).'">'.stripslashes($tab[0]['titre_flux']).'</a>'; ?></div>
<div class="content"><?php echo 'Le '.date('d/m/Y à H:i', $tab[1]['date']).' : <a href="'.stripslashes($tab[1]['lien']).'">'.stripslashes($tab[1]['titre']).'</a> du flux : <a href="'.stripslashes($tab[1]['lien_flux']).'">'.stripslashes($tab[1]['titre_flux']).'</a>'; ?></div>
<div class="content"><?php echo 'Le '.date('d/m/Y à H:i', $tab[2]['date']).' : <a href="'.stripslashes($tab[2]['lien']).'">'.stripslashes($tab[2]['titre']).'</a> du flux : <a href="'.stripslashes($tab[2]['lien_flux']).'">'.stripslashes($tab[2]['titre_flux']).'</a>'; ?></div>
<div class="content"><?php echo 'Le '.date('d/m/Y à H:i', $tab[3]['date']).' : <a href="'.stripslashes($tab[3]['lien']).'">'.stripslashes($tab[3]['titre']).'</a> du flux : <a href="'.stripslashes($tab[3]['lien_flux']).'">'.stripslashes($tab[3]['titre_flux']).'</a>'; ?></div>
</div>
<script type="text/javascript" charset="utf-8">
var my_glider = new Glider('my-glider', {duration:0.4});
</script>
</div>
</div>
Le probleme est que ca marche pas... quelqu'un pourrait m'aider a modifier le code pour qu'il fonctionne avec glider.js?
Merci.
<?php
//
// DEBUT CONFIG
//
$cache_expire = 3600; // 60 secondes * 60 minutes (ici 1 heure)
$cache_path = 'cache/les_flux_rss.txt'; // chemin vers le fichier des news mis en cache
$cache_nb_news = 4; // le nombre de news à mettre en cache
$urls = array(
'http://www.lemonde.fr/rss/sequence/0,2-3234,1-0,0.xml',
'http://www.lemonde.fr/rss/fil/0,57-0,64-1100142,0.xml',
'http://rss.feedsportal.com/c/499/f/413863/index.rss',
'http://rss.feedsportal.com/c/499/f/413839/index.rss',
'http://www.capital.fr/rss2/feed/fil-bourse.xml',
'http://www.lefigaro.fr/rss/figaro_tauxetdevises.xml'
);
//
// FIN CONFIG
//
if(!file_exists($cache_path) OR filemtime($cache_path) < time() - $cache_expire){
$tab = array();
foreach($urls as $rss){
$xml = simplexml_load_file($rss);
$rss_title = $xml->channel->title;
$rss_link = $xml->channel->link;
foreach($xml->xpath('channel/item') as $info)
$tab[strtotime($info->pubDate)] = array('titre' => addslashes($info->title), 'lien' => addslashes($info->link), 'titre_flux' => addslashes($rss_title), 'lien_flux' => addslashes($rss_link), 'date' => strtotime($info->pubDate));
}
krsort($tab);
$tab = array_slice($tab, 0, $cache_nb_news);
file_put_contents($cache_path, serialize($tab));
}
else
$tab = unserialize(file_get_contents($cache_path));
?>
<div id="contenu_homepage">
<div id="my-glider">
<div class="controls">
<a href="#article1">1</a> |
<a href="#article2">2</a> |
<a href="#article3">3</a> |
<a href="#article4">4</a>
</div>
<div id="glider-arrow-left"><a href="#" onclick="my_glider.previous();return false;"><</a></div>
<div id="glider-arrow-right"><a href="#" onclick="my_glider.next();return false">></a></div>
<div class="scroller">
<div class="content"><?php echo 'Le '.date('d/m/Y à H:i', $tab[0]['date']).' : <a href="'.stripslashes($tab[0]['lien']).'">'.stripslashes($tab[0]['titre']).'</a> du flux : <a href="'.stripslashes($tab[0]['lien_flux']).'">'.stripslashes($tab[0]['titre_flux']).'</a>'; ?></div>
<div class="content"><?php echo 'Le '.date('d/m/Y à H:i', $tab[1]['date']).' : <a href="'.stripslashes($tab[1]['lien']).'">'.stripslashes($tab[1]['titre']).'</a> du flux : <a href="'.stripslashes($tab[1]['lien_flux']).'">'.stripslashes($tab[1]['titre_flux']).'</a>'; ?></div>
<div class="content"><?php echo 'Le '.date('d/m/Y à H:i', $tab[2]['date']).' : <a href="'.stripslashes($tab[2]['lien']).'">'.stripslashes($tab[2]['titre']).'</a> du flux : <a href="'.stripslashes($tab[2]['lien_flux']).'">'.stripslashes($tab[2]['titre_flux']).'</a>'; ?></div>
<div class="content"><?php echo 'Le '.date('d/m/Y à H:i', $tab[3]['date']).' : <a href="'.stripslashes($tab[3]['lien']).'">'.stripslashes($tab[3]['titre']).'</a> du flux : <a href="'.stripslashes($tab[3]['lien_flux']).'">'.stripslashes($tab[3]['titre_flux']).'</a>'; ?></div>
</div>
<script type="text/javascript" charset="utf-8">
var my_glider = new Glider('my-glider', {duration:0.4});
</script>
</div>
</div>
Le probleme est que ca marche pas... quelqu'un pourrait m'aider a modifier le code pour qu'il fonctionne avec glider.js?
Merci.