Visualizzazione dei risultati da 1 a 7 su 7

Discussione: abbonamento feed rss

  1. #1

    abbonamento feed rss

    Ciao a tutti!

    Seguendo una delle pillole del forum, ho realizzato i file necessari per la creazione dei feed rss...

    Quello che non mi è chiaro è come si fa ad ottenere l'iconcina, che genera l'abbonamento.... ho le idee un po' confuse....

    Qualcuno mi sa aiutare?

    Grazie
    Michela

  2. #2
    Serve un link html nella pagina
    codice:
    <link rel="alternate" type="application/rss+xml" title="[Titolo del Feed]" href="[link_del_feed]" />
    questo se è un feed rss, se è atom cambi il tipo mettendo atom+xml.

    Ovviamente sono da cambiare titolo e link del feed

  3. #3
    Grazie, provo subito

  4. #4
    ... ho inserito il link il questo modo:

    Codice PHP:
    <table><tr><td><link rel="alternate" type="application/rss+xml" title="ilPrincipe.eu" href="www.ilprincipe.eu/progress/moduli/create_feed.php" /> </td></tr></table
    e dovrebbe comparirmi nella colonna di destra all'indirizzo www.ilprincipe.eu/progress/index.php ma non compare nulla

    Io ho il file rss.php così fatto:
    Codice PHP:
    <?php
    header
    ("Content-type: application/xml");
    //Con questa riga mandiamo al browser un header compatibile col formato XML
    include("funzioni.php"); 
    //Il blocco seguente fa la connessione al database...
    $db=connessione();
    //E quest'altro seleziona le notizie del giorno
    $data = (date("Y-m-d"));
    $sql="SELECT * FROM commenti WHERE data='$data'";
          
    $t=$db->query($sql)or die("Errore ".$conn->error);
          
    $nRighe $t->num_rows;
          

    //Ora iniziamo a occuparci del feed vero e proprio
    require_once("feedcreator.class.php");
    //includiamo la classe col nome che le abbiamo assegnato
      
    //e inizializziamo l'oggetto con parametri personalizzati (descrizione, titolo e link)
    $rss = new UniversalFeedCreator();
    $rss->useCached();
    $rss->title "ilPrincipe.eu";
    $rss->description "Feed del sido de ilPrincipe.eu";
    $rss->link "http://www.ilprincipe.eu";  //Questo non viene reso nel feed, sarà un bug
    $rss->feedURL "http://www.ilprincipe.eu/progress/moduli/rss.php";

    //Questa funzione rimpiazza alcuni caratteri speciali con le relative entità XML
    //serve per evitare errori nell'output
    function xmlentities $string ) {
        
    $ar1 = array ( '&' '&quot;''&apos;' '&lt;' '&gt;' );
        
    $ar2 = array ( '&''"'"’"'<''>' ) ;
        return 
    str_replace $ar1 $ar2$string );
    }
       
    //Questo ciclo che estrae le notizie dal DB e le inserisce come nuovo ITEM nel feed
    //I campi da cui estraggo le notizie si chiamano 'subject', 'content', 'cat', e 'pubdate'
    //ma nel vostro caso i nomi potrebbero essere differenti, e alcuni campi assenti
    //(come Author nel mio caso)
    for ($i=0;$i<$nRighe;$i++) 
    {
        
    $info $t->fetch_assoc();
        
    //Eseguo xhtmlentities() sui primi due campi, che potrebbero contenere entità non valide
        
    $info['id_comm'] = xmlentities($info['id_comm']);
        
    $info['testo'] = xmlentities($info['testo']);

        
    //E ora comincio a inserire le informazioni di ogni item.
       
    $item = new FeedItem();
        
    //notate come a volte prendo i dati così come sono dal db, altre li costruisco al volo
        
    $item->title $info['id_comm'];
        
    $item->link "http://www.ilprincipe.eu/progress/moduli/testi.php?".$info['id_comm'] ;
        
    $item->description $info['testo'];
        
    $item->category "";
        
    //La mia PUBDATE è in formato UNIX TIMESTAMP, ma la classe la converte in formato leggibile
        
    $item->date $info['data'];
        
    //Questa riga per me è invariabile
        
    $item->author "ilPrincipe.eu";

        
    //Definiamo le opzioni dell'item: questo contiene tag HTML...
        
    $item->descriptionHtmlSyndicated true;
        
    //avremmo impostato FALSE per togliere i tag HTML
        
        //...e contiene anche l'elemento <category>
        
    $item->categoryHtmlSyndicated true;

        
    //decommentando la riga seguente, troncheremmo Description (anche con tag) dopo 500 caratteri
        //item->descriptionTruncSize = 500;

        
    $rss->addItem($item);
        
    //Questo lasciatelo, inserisce il nuovo item coi dati appena processati



    //E infine l'output a video.
    echo $rss->createFeed("RSS2.0""");
    //Ovviamente abbiamo anche la possibilità di salvare il file su disco, o di scegliere altri formati
    //Vi rimando ai commenti presenti nella classe per gli esempi del caso.
    ?>
    e il file create_feed.php fatto così:
    Codice PHP:
    <?
    require_once('magpierss/rss_fetch.inc');
    //Questo è l'URL del feed che andremo a parsare. Nell'esempio c'è il mio :-)
    $url "http://ilprincipe.eu/progress/moduli/rss.php";

    //apre il feed
    $rss fetch_rss ($url);

    //Metto il titolo del feed in una variabile
    $feedchanneltitle $rss->channel['title'];

    //Comincio a scrivere l'output
    echo '<h1>Sto stampando il contenuto di '.$feedchanneltitle.'</h1>';

    //Incominciamo un ciclo per ogni item
    foreach ($rss->items as $item) {


    //Qui potrei mettere dei controlli: se le variabili non sono vuote, ecc
    //    if(!empty($item['description'])) {

            //Variabilizzo tutto
            
    $itemlink $item['link'];
            
    $itemtitle $item['title'];
            
    $pubdate $item['pubdate'];
            
    $description $item['description'];
            
    $author $item['author'];
            
    $feedurl $dato['feedurl'] ;
        
            
    //Formatto la data con un intero UNIX TIMESTAMP (del tipo 1129218794) per poterla maneggiare
            
    $pubdate strtotime ($pubdate);
            
    //Formatto la stringa della data secondo i miei gusti
            
    $pubdate date("D, d F Y, G.i"$pubdate);
            

        
    //    } //chiudo eventuali controlli con IF


    //Ora potrei cominciare a stampare il feed a video
    echo '<hr/>';
    echo 
    '<h2>Titolo: '.$itemtitle.', Data: '.$pubdate.'</h2>';
    //Strip_tags è aggiunto per evitare di mostrare l'HTML eventualmente contenuto nell'articolo
    echo '

    '
    .strip_tags($description).'</p>';
    echo 
    '<h3>Da: '.$feedchanneltitle.', Autore: '.$author.'</h3>';
    echo 
    '[url="'.$itemlink.'"]'.$itemlink.'[/url]';

    // chiudo il ciclo FOREACH ITEM
    entrambi contenuti nella cartella moduli

  5. #5
    Lo devi mettere tra il tag <head> </head> e una sola volta.
    codice:
    <link rel="alternate" type="application/rss+xml" title="Feed RSS" href="http://ilprincipe.eu/progress/moduli/rss.php" />

  6. #6
    ... immagino dunque che la relativa iconcina che compare, sulla quale si clicca sia semplicemente un link alla mia pagina rss.php.... giusto?

  7. #7
    Si, l'icona che ti compare sulla barra dell'url è un link a quella pagina. Puoi metterlo dove ti pare con un semplice link ecc ecc e ottenere lo stesso risultato. In quel modo lo metti solo nella barra dell'url così è più facile da individuare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.