... 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 ( '&' , '"', ''' , '<' , '>' );
$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