Paramétrer magpierss

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par lo2b, 18 Septembre 2007.

  1. lo2b
    lo2b WRInaute occasionnel
    Inscrit:
    25 Janvier 2007
    Messages:
    414
    J'aime reçus:
    0
    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é :

    Code:
    <?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...
     
  2. bee_human
    bee_human WRInaute passionné
    Inscrit:
    16 Juin 2005
    Messages:
    1 697
    J'aime reçus:
    0
    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)
     
  3. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Pour la 2, sa ne serait pas plus simple de reduire les images à 1px par css plutot que de ce casser la tete à revoir le code ?
     
  4. lo2b
    lo2b WRInaute occasionnel
    Inscrit:
    25 Janvier 2007
    Messages:
    414
    J'aime reçus:
    0
    merci. j'ai modifié le code pour obtenir l'affichage minimal que je cherchais :
    date - titre

    Code:
    <?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 :mrgreen:
     
  5. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Dans ta page qui affiche ton flux rss, tu fais:
    Code:
     <?
    $rss= ("http://monflux1/rss.xml") ;
    $rss1= ("http://monflux2/rss.xml") ;
    ?>
    
    Et dans l'appel du flux rss:
    Code:
    <?php
    require_once("feedparser.php");
    echo
     FeedParser("$rss" ,10) ;
    echo
     FeedParser("$rss1" ,10) ;
    ?> 
    
    Normalement sa t'affiche tes 2 flux :wink: .
     
  6. lo2b
    lo2b WRInaute occasionnel
    Inscrit:
    25 Janvier 2007
    Messages:
    414
    J'aime reçus:
    0
    merci ! ...Mais je dois m'être trompé quelque part...

    feedparser.php
    Code:
    <?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:
    <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)
     
  7. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Non, c'est bien sa.
    Ta jamais dit qu'ils devaient se mélanger ^^ !
     
  8. lo2b
    lo2b WRInaute occasionnel
    Inscrit:
    25 Janvier 2007
    Messages:
    414
    J'aime reçus:
    0
    :roll:
    merci quand même...
     
  9. bee_human
    bee_human WRInaute passionné
    Inscrit:
    16 Juin 2005
    Messages:
    1 697
    J'aime reçus:
    0
    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. tryan
    tryan WRInaute passionné
    Inscrit:
    20 Février 2005
    Messages:
    2 229
    J'aime reçus:
    0
    Oki, moi je suis bete et discipliné :lol: , si c'est pas marqué texto que c'est pour les mélanger, je ne peux pas le savoir.
    Ceci dit, aurrais-tu un exemple sous la main, un tuto à suivre ou je ne sais quoi ?
     
Chargement...
Similar Threads - Paramétrer magpierss Forum Date
Paramétrer un lien sur blog Blogspot Développement d'un site Web ou d'une appli mobile 11 Décembre 2021
Comment paramétrer Google analytics Google Analytics 16 Janvier 2019
Paramétrer sa ville pour une recherche...existe plus ? Référencement Google 30 Mars 2013
Paramétrer le fichier header.php pour Yoast WordPress SEO Développement d'un site Web ou d'une appli mobile 7 Janvier 2012
Paramétrer un serveur pour conserver les logs pendant 1 an Administration d'un site Web 14 Décembre 2010
Paramétrer le nombre de détails des rapports par mail Google Analytics 27 Avril 2010
Paramétrer le suivi des recherches Google Analytics 6 Janvier 2010
Où parametrer le Google set geography ? Débuter en référencement 27 Juillet 2009
Problême d'URL pour paramétrer un objectif dans Analytics Google Analytics 5 Novembre 2008
Paramétrer les fichiers Photoshop à l'ouverture Développement d'un site Web ou d'une appli mobile 10 Octobre 2008
Comment paramétrer analytics sur un blog Dotclear Débuter en référencement 7 Août 2008
Parametrer des pages acces deny Administration d'un site Web 13 Juin 2007
Paramétrer des fenêtres... Ouf! Administration d'un site Web 29 Avril 2005
Comment paramétrer le user-agent ? Le café de WebRankInfo 2 Novembre 2004
Warning: MagpieRSS: Failed to fetch Développement d'un site Web ou d'une appli mobile 15 Avril 2015
Aide sur MagpieRSS et balise Développement d'un site Web ou d'une appli mobile 24 Octobre 2011
Problème magpierss et caratères spéciaux Développement d'un site Web ou d'une appli mobile 3 Août 2011
XML & Parseur magpierss : Remplacement d'apostrophe par des points d'interrogation Administration d'un site Web 23 Septembre 2009
Tronquer les descriptions d'un flux rss sous magpierss ? Développement d'un site Web ou d'une appli mobile 30 Août 2009
Magpierss et doublons Développement d'un site Web ou d'une appli mobile 4 Mai 2009