• User Newbie

    notizie prelevate da feed in riquadro

    devo inserire un riquadro nel mio sito dove far apparire le notizie prelevate da un feed, un riquadro come quello che si trova sul sito sotto riportato
    bancadirimini.it/main/index.cfm
    (quello che si vede sulla destra, notizie fiscali by...)
    qualcuno mi può aiutare?
    grazie


  • User Attivo

    Ciao draganato,
    io recupero i feed RSS con le librerie CURL, e poi impagino le notizie.
    Con questo meccanismo ho creato la sezione RSS sul mio sito.

    Se ti serve una classe per gestire le CURL lib e prelevare i feed RSS remoti puoi dare uno sguardo ad un articolo che ho scritto io.

    Lo trovi qui.

    :ciauz:


  • User Newbie

    Ciao e grazie, volevo sapere, tecnicamente cosa devo fare, leggendo il tuo articolo mi sono chiesto, ma devo riportare tutti e due i codici , cioè quello nella 2° e quello della 3° pagina??? :mmm:
    ancora grazie per il tuo aiuto.


  • User Attivo

    Ciao,
    dunque nella seconda pagina c'è la classe, o il componente, che si occupa di prelevare i file remoti e di incapsularne il contenuto nella proprietà 'content' della stessa classe.

    Nell'ultima pagina c'è l'esempio di come utilizzare il componente.

    Nel tuo caso, l'istruzione
    [php]echo $rfR->getContent();
    [/php]dovrebbe stamparti a video i feed rss contenuti nel file prelevato.

    Poi, per ricreare il DOM in modo 'smart' puoi utlizzare la classe SimpleXMLElement:
    [php]

    $xml = new SimpleXMLElement($rfR->getContent());
    echo $xml->channel[0]->item[0]->title;

    [/php]Mi sembra che ora hai tutto il necessario per provare a risolvere il tuo problema.

    Buon lavoro
    :ciauz:


  • User Newbie

    Quindi facciamo l'esempio che il mio feed dove prelevo le notizie sia al seguente indirizzo
    nomesito.com/notizie.xml
    dove vado ad inserire questo valore??
    scusami ma non sono proprio un tecnico 😉


  • User Attivo

    Scusa la fretta.

    [php]
    include 'CRemoteFileReader.php';

    //URL da agganciare
    $url_feed = "nomesito.com/notizie.xml";

    //Istanzio un oggetto RemoteFileReader
    $rfR = new RemoteFileReader($url_feed);

    //Test delle librerie
    if (! $rfR->getContent()) {
    echo 'Librerie CURL non installate.';
    exit;
    }

    //Creo il DOM del documento XML per poi poter navigare al suo interno
    $xml = new SimpleXMLElement($rfR->getContent());

    //Visualizzo il titolo del primo item
    echo $xml->channel[0]->item[0]->title;
    [/php]:ciauz:


  • User Newbie

    seguendo la procedura mi appare solo il titolo della prima notizia del file feed , ma non mi appare ne il testo della notizia , ne a rotazione le altre notizie, come fare:
    ho creato un file che si chiama
    CRemoteFileReader.php:
    <?php
    class RemoteFileReader{
    private $url = "";
    private $content = "";

    function __construct($url) {
    $this->url = $url;

      //Testo l'esistenza delle cURL lib    
      if (function_exists('curl_init')) {
       
        //Inizializzo una nuova Risorsa
        $ch = curl_init();
    
        //Imposto l'URL da agganciare
        curl_setopt($ch, CURLOPT_URL, $url);
    
        //Siccome non mi interessa alcun Header
        //ma solo il contenuto del file remoto
        //imposto a zero la richiesta di Header
        curl_setopt($ch, CURLOPT_HEADER, 0);
    
        //Siccome la risposta non la voglio visualizzare
        //sul browser ma la voglio conservare imposto 1
        //alla proprieta' CURLOPT_RETURNTRANSFER
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        
        //Imposto uno user agent per simulare un browser
        curl_setopt($ch, CURLOPT_USERAGENT,
           'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5)'
           . ' Gecko/20041107 Firefox/1.0');
    
        //Setto la proprieta' content della classe con
        //il contenuto della risorsa remota
        $this->content = curl_exec($ch);
        
        //Chiudo la connessione e rilascio la risorsa
        curl_close($ch);
      }  
      else {
        //Le librerie non sono installate: restituisco FALSE
         $this->content = FALSE;
      }
    

    }
    //Metodi Getters/Setters
    public function getContent(){
    return $this->content;
    }
    public function setContent($c){
    $this->content = $c;
    }
    public function getUrl(){
    return $this->url;
    }
    public function setUrl($c){
    $this->url = $c;
    }
    }
    ?>

    e un file che si chiama
    notizie.php:
    include 'CRemoteFileReader.php';

    //URL da agganciare
    $url_feed = "nomesito.com/notizie.xml";

    //Istanzio un oggetto RemoteFileReader
    $rfR = new RemoteFileReader($url_feed);

    //Test delle librerie
    if (! $rfR->getContent()) {
    echo 'Librerie CURL non installate.';
    exit;
    }

    //Creo il DOM del documento XML per poi poter navigare al suo interno
    $xml = new SimpleXMLElement($rfR->getContent());

    //Visualizzo il titolo del primo item
    echo $xml->channel[0]->item[0]->title;


  • User Attivo

    //Visualizzo SOLO il titolo del primo item
    echo $xml->channel[0]->item[0]->title;

    Per visualizzare tutti i feed devi ciclare sugli item, e per ogni item visualizzare le proprietà che ti servono.

    Ti ripeto,
    hai tutto quello che ti serve.