paramétrer magpierss
10 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
paramétrer magpierss
bonjour, me voilà obligé de m'aventurer dans le monde (obscur) du php pour intégrer des flux RSS sur un site.
pas de pb pour utiliser magpierss, avec le script suivant que j'ai récupéré :
voilà mes trois questions :
1. comment faire pour n'afficher que les titres du flux syndiqué ?
2. comment faire pour ne pas afficher les images ?
3. comment faire pour syndiquer plusieurs flux ensemble ?
après avoir longement cherché sur Google, je n'ai pas trouvé de tuto expliquant toutes les fonctions paramétrables de magpierss...
pas de pb pour utiliser magpierss, avec le script suivant que j'ai récupéré :
- Code: Tout sélectionner
<?php
// on inclut la classe magpierss
require_once("magpierss/rss_fetch.inc");
// la fonction FeedParser() va extraire le contenu pour l'afficher
// elle prend en paramètre $url_feed, l'url du flux RSS et $nb_items_affiches, le nombre d'éléments (items) à afficher
function FeedParser($url_feed, $nb_items_affiches) {
// lecture du fichier distant (flux XML)
$rss = fetch_rss($url_feed);
// si le parcours du fichier se passe bien, on lit les élements (items)
if (is_array($rss->items)) {
// on ne garde que les $nb_items_affiches premiers éléments (items), nombre défini dans l'en-tête de la fonction
$items = array_slice($rss->items, 0, $nb_items_affiches);
// on peut récupérer les informations sur le site proposant le flux (optionnel)
$site_titre = $rss->channel["title"]; // titre du site
$site_lien = $rss->channel["link"]; // lien du site
$site_description = $rss->channel["description"]; // description du site
// à présent on stocke les données dans $html, variable à afficher
// titre sous forme de lien
$html .= "<a href=\"$site_lien\" title=\"$site_description\" target=\"_blank\">$site_titre</a><br />\n";
// on affiche la description du site proposant le flux
$html .= "<span>$site_description</span><br clear=\"left\" target=\"_blank\"><br />\n"; // le clear="left" renvoie à la ligne même s'il y a une image
// on fait une boucle sur les informations : pour chaque item, récupérer $titre... et afficher
foreach($items as $item) {
// on mémorise les informations de chaque item dans des variables
$titre = $item["title"];
$lien = $item["link"];
$description = $item["description"];
// la date utilisée pour les flux RSS est au format timestamp, il faut donc formater la date
// conversion au format jj/mm/aa. pour plus d'informations, vous conférer au tutorial sur les timestamp
$date = date("d/m/y",strtotime($item["pubdate"]));
// on affiche le titre de chaque item
$html .= "<a href=\"".$lien."\" title=\"".$titre."\" target=\"_blank\">".$titre."</a><br>\n";
// puis la date et la description
$html .= "<span>$date - $description</span><br clear=\"left\"><br />\n";
} // fin de la boucle
// on retourne la variable $html au programme (elle contient le code HTML pour l'affichage du flux)
return $html;
} // fin du traitement du fichier
} // fin de la fonction FeedParser()
?>
voilà mes trois questions :
1. comment faire pour n'afficher que les titres du flux syndiqué ?
2. comment faire pour ne pas afficher les images ?
3. comment faire pour syndiquer plusieurs flux ensemble ?
après avoir longement cherché sur Google, je n'ai pas trouvé de tuto expliquant toutes les fonctions paramétrables de magpierss...
Pour 1 c'est simple: tu retire cela:
// puis la date et la description
$html .= "<span>$date - $description</span><br clear=\"left\"><br />\n";
si tu veux garder la date il faut que tu modifies la ligne du dessus pour que la date soit devant ton titre.
Pour 2, si la description contient des images, les images s'afficheront à partir du moment où tu afficheras la description. Pour retirer que les images sans retirer la description, il faut que tu réinterprètes complétement le champ description pour éliminer toutes les balises img avec ceux qui les ferment et ceux qui ne les ferment pas. Avec ceux qui éventuellement utilisent l'image comme lien etc...
Pour le 3, il faut également réécrire le code php pour n'afficher la variable $html qu'une fois que tus l'a rempli avec l'ensemble des flux dans l'ordre que tu souhaites (en passant par un tableau intermédiaire qui te permettra le tri)
// puis la date et la description
$html .= "<span>$date - $description</span><br clear=\"left\"><br />\n";
si tu veux garder la date il faut que tu modifies la ligne du dessus pour que la date soit devant ton titre.
Pour 2, si la description contient des images, les images s'afficheront à partir du moment où tu afficheras la description. Pour retirer que les images sans retirer la description, il faut que tu réinterprètes complétement le champ description pour éliminer toutes les balises img avec ceux qui les ferment et ceux qui ne les ferment pas. Avec ceux qui éventuellement utilisent l'image comme lien etc...
Pour le 3, il faut également réécrire le code php pour n'afficher la variable $html qu'une fois que tus l'a rempli avec l'ensemble des flux dans l'ordre que tu souhaites (en passant par un tableau intermédiaire qui te permettra le tri)
merci. j'ai modifié le code pour obtenir l'affichage minimal que je cherchais :
date - titre
pour ma 2e question, de toute façon je n'affiche que le titre, donc pas de pb d'image...
pour ma 3e question, ce sera pour quand je serai plus grand
date - titre
- Code: Tout sélectionner
<?php
// on inclut la classe magpierss
require_once("magpierss/rss_fetch.inc");
// la fonction FeedParser() va extraire le contenu pour l'afficher
// elle prend en paramètre $url_feed, l'url du flux RSS et $nb_items_affiches, le nombre d'éléments (items) à afficher
function FeedParser($url_feed, $nb_items_affiches) {
// lecture du fichier distant (flux XML)
$rss = fetch_rss($url_feed);
// si le parcours du fichier se passe bien, on lit les élements (items)
if (is_array($rss->items)) {
// on ne garde que les $nb_items_affiches premiers éléments (items), nombre défini dans l'en-tête de la fonction
$items = array_slice($rss->items, 0, $nb_items_affiches);
// à présent on stocke les données dans $html, variable à afficher
// on fait une boucle sur les informations : pour chaque item, récupérer $titre... et afficher
foreach($items as $item) {
// on mémorise les informations de chaque item dans des variables
$titre = $item["title"];
$lien = $item["link"];
// la date utilisée pour les flux RSS est au format timestamp, il faut donc formater la date
// conversion au format jj/mm/aa. pour plus d'informations, vous conférer au tutorial sur les timestamp
$date = date("d/m/y",strtotime($item["pubdate"]));
// on affiche la date
$html .= "<span>$date </span>\n";
// puis le titre de chaque item
$html .= "<a href=\"".$lien."\" title=\"".$titre."\" target=\"_blank\">".$titre."</a><br>\n";
} // fin de la boucle
// on retourne la variable $html au programme (elle contient le code HTML pour l'affichage du flux)
return $html;
} // fin du traitement du fichier
} // fin de la fonction FeedParser()
?>
pour ma 2e question, de toute façon je n'affiche que le titre, donc pas de pb d'image...
pour ma 3e question, ce sera pour quand je serai plus grand
Dans ta page qui affiche ton flux rss, tu fais:
Et dans l'appel du flux rss:
Normalement sa t'affiche tes 2 flux
.
- Code: Tout sélectionner
<?
$rss= ("http://monflux1/rss.xml") ;
$rss1= ("http://monflux2/rss.xml") ;
?>
Et dans l'appel du flux rss:
- Code: Tout sélectionner
<?php
require_once("feedparser.php");
echo
FeedParser("$rss" ,10) ;
echo
FeedParser("$rss1" ,10) ;
?>
Normalement sa t'affiche tes 2 flux
merci ! ...Mais je dois m'être trompé quelque part...
feedparser.php
un-seul-flux-rss.php
voilà ce que cela donne (sans mise en page...) :
-http://annuaire.politique.free.fr/un-seul-flux-rss.php
bref, les deux flux se succèdent mais ne se mélangent pas chronologiquement...
(je vais alors peut-être me contenter de
-http://annuaire.politique.free.fr/plusieurs-flux-rss.php)
feedparser.php
- Code: Tout sélectionner
<?php
// on inclut la classe magpierss
require_once("magpierss/rss_fetch.inc");
// la fonction FeedParser() va extraire le contenu pour l'afficher
// elle prend en paramètre $url_feed, l'url du flux RSS et $nb_items_affiches, le nombre d'éléments (items) à afficher
function FeedParser($url_feed, $nb_items_affiches) {
// lecture du fichier distant (flux XML)
$rss = fetch_rss($url_feed);
// si le parcours du fichier se passe bien, on lit les élements (items)
if (is_array($rss->items)) {
// on ne garde que les $nb_items_affiches premiers éléments (items), nombre défini dans l'en-tête de la fonction
$items = array_slice($rss->items, 0, $nb_items_affiches);
// à présent on stocke les données dans $html, variable à afficher
// on fait une boucle sur les informations : pour chaque item, récupérer $titre... et afficher
foreach($items as $item) {
// on mémorise les informations de chaque item dans des variables
$titre = $item["title"];
$lien = $item["link"];
// la date utilisée pour les flux RSS est au format timestamp, il faut donc formater la date
// conversion au format jj/mm/aa. pour plus d'informations, vous conférer au tutorial sur les timestamp
$date = date("d/m/y",strtotime($item["pubdate"]));
// on affiche la date
$html .= "<span>$date </span>\n";
// puis le titre de chaque item
$html .= "<a href=\"".$lien."\" title=\"".$titre."\" target=\"_blank\">".$titre."</a><br>\n";
} // fin de la boucle
// on retourne la variable $html au programme (elle contient le code HTML pour l'affichage du flux)
return $html;
} // fin du traitement du fichier
} // fin de la fonction FeedParser()
?>
un-seul-flux-rss.php
- Code: Tout sélectionner
<html>
<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Nouvelle page 1</title>
</head>
<body>
<? $rss= ("http://tempsreel.nouvelobs.com/file/rss_perm/rss_permanent_politique.xml") ; $rss1= ("http://www.lemonde.fr/rss/sequence/0,2-3224,1-0,0.xml") ; ?>
<?php
require_once("feedparser.php");
echo
FeedParser("$rss" ,20) ;
echo
FeedParser("$rss1" ,20) ;
?>
</body>
</html>
voilà ce que cela donne (sans mise en page...) :
-http://annuaire.politique.free.fr/un-seul-flux-rss.php
bref, les deux flux se succèdent mais ne se mélangent pas chronologiquement...
(je vais alors peut-être me contenter de
-http://annuaire.politique.free.fr/plusieurs-flux-rss.php)
Re: paramétrer magpierss
tryan a écrit:Non, c'est bien sa.lo2b a écrit:3. comment faire pour syndiquer plusieurs flux ensemble ?
Ta jamais dit qu'ils devaient se mélanger ^^ !
Généralement quand on veut parser 2 flux ensemble, c'est pour les mélanger. C'est pour cette raison que j'ai suggéré le passage par un tableau intermédiaire pour le trier ensuite suivant ses propres critères: date ou ordre alphabétique du titre par exemple.
10 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Intégrer un flux RSS sur son site
- Customize Google (extension Firefox)
- La syndication de contenu : afficher un flux RSS sur son site
- De la publicité ciblée dans les cartes de Google Local
- Google Deskbar, un petit logiciel bien pratique
- Gérer ses paramètres de tracking dans Google Webmaster Tools
- Gestion des langues et des sessions en PHP / MySQL
- The Technology Behind Google
- Nouveau format d'URL des referrers Google
- Article sur le fichier .htaccess
- paramétrer infobulle Google Maps
- Paramétrer des fenêtres... Ouf!
- Comment paramétrer le user-agent ?
- Paramétrer les fichiers Photoshop à l'ouverture
- Parametrer des pages acces deny
- Comment paramétrer analytics sur un blog Dotclear
- Parametrer Zone alarm pour MSN Messnger
- Paramétrer Gmail sur un portable (Nokia 6670)
- Problême d'URL pour paramétrer un objectif dans Analytics
- installer magpierss
- Utilisation de magpierss
- magpierss et feedparser
- Probleme magpierss
- utilisation magpierss
- Update de magpierss
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités






le forum