Intégrer plusieurs flux RSS externes à votre site


cnhx
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 27 Avr 2008

Intégrer plusieurs flux RSS externes à votre site

Message le Lun Nov 03, 2008 8:04

J'ai réalisé 2 petits scripts PHP

le premier permet de récupérer les 10 derniers articles du forum du site optimisé pour le référencement via phpBB SEO.
Démo : http://www.ville-arnieressuriton.com/index.html

le deuxième permet d'afficher les dernières actualités d'un autre site ou d'autres sites qui les fournies au travers d'un flux XML.
Démo : http://www.ville-arnieressuriton.com/De ... rable.html

Comme dans la première solution de WRI, cela se présente sous la forme d'une liste avec le titre de chaque article ainsi qu'un lien vers la version complète de l'article. La différence est que dans ce script, il est possible de concaténer plusieurs flux RSS pour les afficher (et j'utilise SimpleXML pour parser les flux XML).

Si ces scripts intéressent, je peux envisager de faire un tuto sur chacun.

A vous de me le dire :roll:


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Lun Nov 03, 2008 9:59

La concaténation de flux RSS ça m'intéresse. Tu utilises une BDD derrière ou pas?

climax
WRInaute discret
WRInaute discret
 
Messages: 102
Inscription: 8 Avr 2006

Message le Lun Nov 03, 2008 10:03

Je cherche un script qui permet de classe plusieurs flux par dates
avec un lien qui dirige vers une page de mon site avec l'article complet

avec magiperss je n'arrive pas à faire le classement par dates

Ton deuxième script correspond peut être ?

Merci


cnhx
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 27 Avr 2008

Message le Lun Nov 03, 2008 10:26

@Bacteries : Tu utilises une BDD derrière ou pas ? Non, je parse les flux XML à la volée.

@climax : Ton deuxième script correspond peut être ?
Oui tout à fait.
Dans la page que je cite, le flux XML affiché dans la page est triée par date de publication (<pubDate>) (du + récent vers + ancien).

climax
WRInaute discret
WRInaute discret
 
Messages: 102
Inscription: 8 Avr 2006

Message le Lun Nov 03, 2008 10:32

Tu peux nous fournir le script ou un tuto ?

Merci :D


cnhx
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 27 Avr 2008

Message le Jeu Nov 06, 2008 7:10

Le tutorial est disponible 8)

Vous pouvez le consulter à l'adresse suivante :
Tutorial Utilisation SimpleXML avec PHP: http://www.ville-arnieressuriton.com/Di ... l-php.html

Adresser toutes vos questions / commentaires, içi sur ce forum.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Jeu Nov 06, 2008 9:01

climax a écrit:Je cherche un script qui permet de classe plusieurs flux par dates
avec un lien qui dirige vers une page de mon site avec l'article complet
avec magiperss je n'arrive pas à faire le classement par dates
Merci


stock tes flux en base avec un script externe (tache cron) et en sortie tu fais le trie par date directement dans la requete sql.

++


serval2a
WRInaute accro
WRInaute accro
 
Messages: 3457
Inscription: 21 Mar 2005

Message le Jeu Nov 06, 2008 9:42

Et la mise en cache c'est pour les cochons ? :lol:


cnhx
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 27 Avr 2008

Message le Jeu Nov 06, 2008 10:00

@KOogar :
Avec la fonction de tri USORT de PHP => plus simple qu'un stockage en table
Et ainsi pas besoin de stocker les flux vu que je ne prends que les x derniers.

@serval2a :
Une petite explication sur la mise en cache serait la bienvenue :wink:
Comment faire cela sous PHP, des exemples ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Jeu Nov 06, 2008 11:50

serval2a a écrit:Et la mise en cache c'est pour les cochons ? :lol:


le rapport avec le sujet stp ?

cnhx a écrit:@KOogar :
Avec la fonction de tri USORT de PHP => plus simple qu'un stockage en table
Et ainsi pas besoin de stocker les flux vu que je ne prends que les x derniers.


je croyais avoir répondu a climax 8) mais vu que tu en parles, ta methode est aussi trés bien :D

climax
WRInaute discret
WRInaute discret
 
Messages: 102
Inscription: 8 Avr 2006

Message le Jeu Nov 06, 2008 12:22

Merci

J'ai trouvé ce topic aussi qui utilise USORT
http://www.webrankinfo.com/forums/viewtopic_80542.htm

Mais cela ne correspond pas à ce que je cherche
car je souhaite utilise un template différent pour chaque flux

J'ai plusieurs templates comme ça et je veux les affichés ensemble trier par dates

<?php
require_once("rss/magpierss/rss_fetch.inc");

function FeedParser2($url_feed, $nb_items_affiches=10)
{
$rss = fetch_rss($url_feed);

if (is_array($rss->items))
{
$items = array_slice($rss->items,
0, $nb_items_affiches);

foreach ($items as $item)
{
$html .= '<div class="rsstitre">';
$html .= '<p><span class="rssdate">';
$html .= date("d/m/y ",strtotime($item["pubdate"]));
$html .= '</span>';
$html .= '<a href="http://www.mon-site-avec la-description-du-flux.php"> - ';
$html .= ''.$item['title'].'</a>';
$html .= '</p></div>';

}

}

return $html;
}
?>


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Jeu Nov 06, 2008 12:48

Tu veux dire que tu as plusieurs flux et que tu aimerais les regrouper pour n'en faire qu'1 trié par date.

Si c'est ca, soit tu construit un tableau multidimensionnel pour y stoker les resultats de tes flux, genre:

Code: Tout sélectionner
$tab[0]["flux"] = date("d/m/y ",strtotime($item["pubdate"]));
$tab[1]["flux"] = 'http://www.mon-site-avec la-description-du-flux.php>';
$tab[2]["flux"] = ''.$item['title'].'';


ou tu passes par une table sql ce qui a ton niveau me semble simple a faire.

Code: Tout sélectionner
foreach ($items as $item)
{
$date = date("d/m/y ",strtotime($item["pubdate"]));
$url = 'http://www.mon-site-avec la-description-du-flux.php>';
$titre = ''.$item['title'].'';
}
mysql_query("INSERT INTO table $date,$titre....


ce petit bout de script, tu le fais en tache cron, tous les herbergeurs on ca (planificateurs de taches) et ensuite tu as juste a faire une lecture de ta table ORDER BY date

climax
WRInaute discret
WRInaute discret
 
Messages: 102
Inscription: 8 Avr 2006

Message le Ven Nov 07, 2008 11:28

Ca ma l'air bien comme solution mais je n'ai pas assez de connaissance pour faire ça :oops:

J'utilise donc plusieurs templates et ensuite pour chacun j'ai ce code sur ma page

Code: Tout sélectionner
<?php
require_once("rss/magpierss/le-template.php");
echo
FeedParser("http://le-flux.xml", 5);
?>


C'est ce code que je dois changer ?

Je suis novice en programmation :?


serval2a
WRInaute accro
WRInaute accro
 
Messages: 3457
Inscription: 21 Mar 2005

Message le Ven Nov 07, 2008 11:46

KOogar a écrit:
serval2a a écrit:Et la mise en cache c'est pour les cochons ? :lol:

le rapport avec le sujet stp ?

Rho quand même il se voit le rapport non, créer une page à partir de possibles dizaines de flux RSS ne va pas aller sans problème au niveau du processeur du serveur proposant la page, si il y a un certain seuil de trafic puisque le traitement sera fait à chaque fois, et du point de vue des sites "parsés", qui ne verront peut-être pas trop l'utilité de se faire télécharger toutes les x secondes leur flux RSS contre un hypothétique retour en visiteurs. ;)

Sinon pour la fonction de cache je pense que partir de la solution de fandecine peut-être pas mal => http://www.webrankinfo.com/forums/viewtopic_28614.htm

@+


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Ven Nov 07, 2008 11:49

climax a écrit:Je suis novice en programmation :?


Tu veux un devis ??

Intégrer plusieurs flux RSS externes à votre site

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités