Flux rss fonctionne sur une page et pas sur une autre

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Savoy, 28 Avril 2011.

  1. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Bonjour à tous,

    En suivant cet excellent article => https://www.webrankinfo.com/dossiers/webmastering/integrer-un-flux-rss j'ai réussi à récupérer le flux rss de mon blog mais l'affichage ne fonctionne pas sur ma page d'accueil.

    Ma page d'accueil est une page statique (index.html) elle s'affiche via un moteur de template (template.htm)

    En ajoutant un ligne à mon .htaccess j'arrive à éxecuter le code php dans une page html seule.
    Par contre quand je tente d'afficher mon flux rss sur une page qui passe par le template, le code n'est pas exécuté (il est par contre bien présent dans le code source).

    Quelle pourrait être la solution à ce problème technique ?

    Merci.
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
  3. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Oui j'avais vu ça.
    Mais maintenant mon problème est-il lié à l'obsolescence de magpierss ?

    En tout cas, merci pour ta réponse :wink:
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    C'est quoi le moteur de template ? Il n'y a pas une syntaxe spéciale pour exécuter du PHP dedans ?
     
  5. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Le moteur de template c'est un fichier htm qui est placé à la racine et dans lequel viennent s'afficher toutes mes pages, même les pages dynamiques.

    Par contre dans mes pages j'ai effectivement une syntaxe spéciale avec des tags du style _#nomdeFonction#_ qui permet d'activer du code php (enfin je pense).
    Le truc c'est que les fonctions sont stockées dans la base de donnée. Je ne sais pas si c'est très orthodoxe comme truc mais ça marche.

    Ecrire les fonctions en php dans la base de donnée implique probablement de réécrire le code source de la fonction.
    Je me demandais s'il était possible de contourner le problème
     
  6. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    Ça ne dit tjs pas quel est le moteur de template utilisé: Smarty, Savant, Twig, template maison,... ?
    Tu as essayé un simple <?php echo 'test';?> dans les templates .htm pour être bien sûr que le PHP s'exécute dedans ?
     
  7. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Merci pour ton aide.
    Le template, je crois que c'est du maison.

    Après, le constat que je fais c'est :
    page.html => lecture du flux rss
    /dossierDesPagesTemplate/page.html => pas de lecture du flux Rss

    Alors tu vas me dire : "ben met ta page hors de /dossierDesPagesTemplate/" mais là c'est le reste qui marche plus...

    Sinon, je ne peux pas appeler directement le fichier template.htm.
    Sinon dans mon template j'ai un tag du style _#require html#_

    Oui le code apparait dans la source mais comme s'il était commenté et rien ne s'affiche en revanche il n'y a pas de /* ou de //
     
  8. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    Donc le PHP ne s'exécute pas dans le template, alors tu vas devoir envoyer une variable contenant le flux RSS parsé et transformé en HTML dans le template via ton controller (si t'en as un, je n'ai aucune idée de l'architecture de ton script, c'est souvent du style $template->set('maVar', $maVar)).

    NB: Les moteurs de templates c'est le mal, PHP est déjà un moteur de templates.
     
  9. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Oui bon je pense que ce n'est pas à ma portée car CSS ok pas de souci mais php :lol:

    Je vais jeter un oeil à mes scripts mais j'ai peur de tout massacrer...

    Sinon le stockage des fonctions dans la Bdd tu en penses quoi ?

    Voilà c'est du style :

    Code:
    function _connect() {
    global $idcli;
    
    
    if(empty($idcli)) {
    
    
    $buf=<<<HERE
             
              <form name="form1" id="form1" method="post" action="/xxx.php">
              <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td >Email :
                     <input type=hidden name=login value=1>
                      <input name="user" type="text" size="15" />
    PSWD :<br />
    <input name="pass" type="password" size="15" /></td>
                    <td ><input type="submit" name="Submit" value="Go" /></td>
                  </tr>
                </table>
        			<a href="oubli.html" >Mot de passe oublié ?</a><br />
                  <a href="inscription.html">Inscription</a>
              </form>
              
    HERE;
    } else {
    
    $q="select * from xxx where ref='$idcli'";
    $r=mysql_query($q);
    $o=mysql_fetch_object($r);
    
    
    $buf=<<<HERE
    
    $o->nom $o->prenom 
    
    
    <a href=compte.html>compte</a>
    HERE;
    
    }
    
    
    return $buf;
    
    }
    ensuite la fonction est appelée par _#connect#_ dans ma page html
     
  10. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    C'est une technique comme une autre, je suis pas fan mais si c'est bien secure ça devrait aller.
    C'est quoi ce CMS ?

    Tu peux essayer de créer une fonction test dans le meme fichier ou il y a la fonction _connect():
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">function&nbsp;</span><span class="syntaxdefault">_test</span><span class="syntaxkeyword">(){<br />echo&nbsp;</span><span class="syntaxstring">'Ca&nbsp;fonctionne'</span><span class="syntaxkeyword">;<br />}<br />&nbsp;</span><span class="syntaxdefault"></span>
    Puis tu testes dans ton template:
    _#test#_

    Si ça fonctionne, tu mets tout le code PHP de parsage du flux RSS dans la fonction (et tu renommes en autre chose que "test").
     
  11. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Ah oui j'avais pensé faire ça mais le code que j'ai affiché plus haut c'est du php ?

    Et sinon ce que tu dis pour la fonction test ca marche j'ai déjà testé ce truc.

    Ce qui me pose problème c'est les require je ne sais pas trop comment je dois les appeler vu que j'ai deux morceaux :

    La fonction qui parse (je la met dans la bdd) => là ok
    La fonction qui appelle le script, c'est un bout de php et là je ne sais pas trop quoi en faire... est-ce que je peux le mettre ausi dans la base de donnée puis l'appeler via un tag ?
    Code:
    <?php
    require_once("feedparser.php");
    echo FeedParser("http://www.monite.com/rss.php");
    ?>
     
  12. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    Ce code
    est à mettre dans la fonction créé:
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">function&nbsp;</span><span class="syntaxdefault">_feed</span><span class="syntaxkeyword">(){<br />require_once(</span><span class="syntaxstring">"feedparser.php"</span><span class="syntaxkeyword">);</span><span class="syntaxcomment">//attention&nbsp;au&nbsp;chemin<br /></span><span class="syntaxkeyword">echo&nbsp;</span><span class="syntaxdefault">FeedParser</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"http://www.monite.com/rss.php"</span><span class="syntaxkeyword">);<br />}<br />&nbsp;</span><span class="syntaxdefault"></span>
    puis dans ton template:
    _#feed#_
     
  13. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    ok et je garde mon fichier feedparser.php à part sur mon ftp c'est bien ça ?
     
  14. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    feedparser.php sur ton serveur oui, mais je ne sais pas te dire exactement où, ça dépend de ton script, ensuite indiquer le bon chemin au require_once()
     
  15. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Ok je vais voir ça en fait, il n'y a plus de raison que ça ne fonctionne pas :)

    Sinon http://simplepie.org/ est aussi simple que magpierss ?
     
  16. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
  17. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Est-ce que tu sais s'il est possible de supprimer les dossiers demo et tests dans simplepie_1.2 ?
     
  18. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
  19. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Bon, j'ai pas mal avancé j'arrive à afficher pas mal de truc mais j'ai un souci sur l'affichage du contenu :

    J'utilise une syntaxe un peu particulière qui me permet d'afficher les titres des derniers posts mais dans ce cas précis ça ne m'affiche qu'un seul post je n'arrive pas à afficher le contenu du foreach.

    Code:
    foreach ($feed->get_items() as $item);
    return $item->get_title();
    
    Comment faire pour afficher cette liste d'items ?

    Merci pour votre aide
     
  20. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 889
    J'aime reçus:
    75
    Ce bout de code il est dans une fonction ? Il nous faut un peu plus d'infos là pour t'aider, mais globalement si c'est le cas, le return te fait sortir de la fonction d'emblée. La solution est de passer par une variable intermédiaire, dans laquelle tu concatènes les données comme tu en as envie, et de faire ton return en dehors du foreach.
     
  21. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    oui désolé j'aurais dû être plus précis...

    Code:
    function _feedItem() { 
    require_once("php/simplepie.inc");
    $feed = new SimplePie();
    $feed->set_feed_url('http://www.monsite.com/blog/feed/'); 
    $feed->set_output_encoding('ISO-8859-1');
    $feed->init(); 
    $feed->handle_content_type();
    foreach ($feed->get_items() as $item);
    return $item->get_title();
    }
    
    Ensuite avec un tag spécial je "recrache" la fonction _feedItem()
    Là où je ne comprends plus c'est que le $feed->get_items() doit renvoyer 10 valeurs (un tableau je crois) c'est ensuite l'affichage de ces 10 lignes qui me pose problème...
    Merci
     
  22. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 889
    J'aime reçus:
    75
    Relis ce que je t'ai mis juste au dessus : ton return met immédiatement fin, dès le premier passage, à l'exécution de ta fonction.

    Tu attends quoi en sortie, un tableau ?

    Si oui :

    Code:
    $a_titles = array()
    foreach ($feed->get_items() as $item);
    {
         array_push($a_titles,$item->get_title());
    }
    return $a_titles;
    
     
  23. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Merci pour ton aide !

    En fait un tableau j'en sais trop rien...
    Je dois avoir les 10 titres de mes items $item->get_title()

    Ce que tu as indiqué me renvoie une erreur de sytaxe
     
  24. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    Tu dois renvoyer du HTML.

    PHP:
    <span class="syntaxdefault"><br />function _feedItem</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br />require_once(</span><span class="syntaxstring">"php/simplepie.inc"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$feed </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new SimplePie</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_feed_url</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'http://www.monsite.com/blog/feed/'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_output_encoding</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'ISO-8859-1'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">init</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">handle_content_type</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">$html </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'<ul>'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_items</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> as $item</span><span class="syntaxkeyword">){<br /></span><span class="syntaxdefault">$html </span><span class="syntaxkeyword">.=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'<li>'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_title</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'</li>'</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">$html </span><span class="syntaxkeyword">.=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'</ul>'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">return $html</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault"> </span>
     
  25. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    aaaaaaaaaaaaaaaaaaaaaaaaaa

    OUI !!!!

    J'ai passé tout l'après midi sur ce truc, javais mis un <br /> mais je n'aurais jamais trouvé !!!

    Merci Merci Merci Merci Merci Merci Merci Merci

    Bon j'ai qd même une autre question :

    Je crée une fonction pour chaque tag est-il possible de simplifier ?

    Code:
    function _feedTitle() { 
    require_once("php/simplepie.inc");
    $feed = new SimplePie();
    $feed->set_feed_url('http://monsite/blog/feed/'); 
    $feed->set_output_encoding('ISO-8859-1');
    $feed->init(); 
    $feed->handle_content_type();
    return $feed->get_title();
    
    }
    
    function _feedDesc() { 
    require_once("php/simplepie.inc");
    $feed = new SimplePie();
    $feed->set_feed_url('http://monsite/blog/feed/'); 
    $feed->set_output_encoding('ISO-8859-1');
    $feed->init(); 
    $feed->handle_content_type();
    return $feed->get_description();
    }
    
    function _feedItem() {
    require_once("php/simplepie.inc");
    $feed = new SimplePie();
    $feed->set_feed_url('http://monsite/blog/feed/');
    $feed->set_output_encoding('ISO-8859-1');
    $feed->init();
    $feed->handle_content_type();
    $html = '<ul>';
    foreach ($feed->get_items() as $item){
    $html .= '<li>'.$item->get_title().'</li>';
    }
    $html .= '</ul>';
    return $html;
    }
    est-ce que ça ne va pas ralentir le chargement de la page ?

    merci beaucoup !!!
     
  26. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 101
    J'aime reçus:
    305
    Si on ne sait pas comment passer des paramètres à l'appel des fonctions dans tes templates, tu n'as pas le choix que de créer x fonctions.

    Sinon cela aurait pu être:
    PHP:
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">function&nbsp;</span><span class="syntaxdefault">_feedItem</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$url</span><span class="syntaxkeyword">){<br />&nbsp;&nbsp;&nbsp;&nbsp;require_once(</span><span class="syntaxstring">"php/simplepie.inc"</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$feed&nbsp;</span><span class="syntaxkeyword">=&nbsp;new&nbsp;</span><span class="syntaxdefault">SimplePie</span><span class="syntaxkeyword">();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_feed_url</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$url</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_output_encoding</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'ISO-8859-1'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">init</span><span class="syntaxkeyword">();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">handle_content_type</span><span class="syntaxkeyword">();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$html&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'<ul>'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$feed</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_items</span><span class="syntaxkeyword">()&nbsp;as&nbsp;</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$html&nbsp;</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxstring">'<li>'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_title</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'</li>'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$html&nbsp;</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxstring">'</ul>'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$html</span><span class="syntaxkeyword">;<br />}<br />&nbsp;</span><span class="syntaxdefault"></span>
     
  27. Savoy
    Savoy WRInaute occasionnel
    Inscrit:
    22 Février 2007
    Messages:
    278
    J'aime reçus:
    0
    Bah finalement j'ai viré tout le début pour ne garder que la liste car c'est réellement ce qui m'intéresse.

    Je ne sais pas si ça pourra aider qq1 mais en tout car un grand merci à spout

    Bonne soirée et merci à tous pour votre aide, quand ma liste s'est affichée ce soir j'en aurais chialé :lol:
     
Chargement...
Similar Threads - Flux rss fonctionne Forum Date
Probléme avec un flux rss Demandes d'avis et de conseils sur vos sites 4 Novembre 2019
Redirection bizarre impactant un flux RSS Netlinking, backlinks, liens et redirections 11 Novembre 2018
Les flux RSS sont-ils toujours indispensables en 2017 ? Développement d'un site Web ou d'une appli mobile 15 Mars 2017
[Wordpress] Existe-t'il plugin pour générer un nouveau flux RSS ? Développement d'un site Web ou d'une appli mobile 27 Décembre 2016
Flux rss : comment récupérer uniquement le 2eme item ? Développement d'un site Web ou d'une appli mobile 3 Juin 2016
Quelle date dans <pubDate> pour flux RSS : création ou dernière modification? Crawl et indexation Google, sitemaps 24 Mai 2016
Les flux rss et le seo Netlinking, backlinks, liens et redirections 10 Mars 2016
Récupération d'un flux RSS Problèmes de référencement spécifiques à vos sites 3 Février 2016
Flux RSS et référencement (sitewide) Netlinking, backlinks, liens et redirections 6 Février 2015
Rediffusion de flux RSS autorisée ? Droit du web (juridique, fiscalité...) 27 Janvier 2015