Rss

Salve nel mio sito dovrei inserire rss utilizzo yii 1, mi è stato chiesto di fornire il link rss per importare le notizie del mio sito in un sito partners,Io ho una view “offerte”, dove ho tutti i dati relativi caricati dal database, come posso procedere? c’è un estensione?..leggevo anche di integrazione di zend framework

basta fare una rssController con una action ‘feed’ definita predefinita (perchè mi piace il nome ma non importa) e li fargli mandare in output l’XML dell’RSS, non integrare Zend solo per questo

dopo di che gli dai http://tuosito.tld/rss/ come indirizzo ed il gioco è fatto :)

Quindi nel controller: nel mio caso “Offerte” dove nell’actionIndex ho l’elenco di tutte le offerte, creo un actionFeed che manda in output l’xml del rss?..mi avvalgo di qualche estensione per fare ciò?

Primo: la tecnica è sempre quella, dovunque tu la voglia mettere e in qualsiasi vodo tu lo voglia fare; devi mandare in output un XML (completo di header corretto !)

Mi spiace, non conosco estensioni al riguardo, l’ho sempre fatto a manina, perchè è molto semplice la struttura xml di un RSS. Io usavo addirittura DomDocument (nativo di php) per farlo, e poi bastava fare l’echo del metodo save e veniva prodotto l’output necessario (preceduto da un header, come detto sopra).

cerca nelle estensioni: http://www.yiiframework.com/extensions/?tag=RSS

Forse questa: http://www.yiiframework.com/extension/efeed/

Siccome non l’ ho mai fatto pensavo ci fosse qualche estensione e l’avevo pure trovata come hai postato tu

efeed ma mi andava in errore, stavo vedendo questo esempio: http://www.carronmedia.com/create-an-rss-feed-with-php/

oddio che schifo… xml scritto a manina … ad ogni modo, si, funziona così.

Vedi anche http://www.phpclasses.org/package/4427-PHP-Generate-feeds-in-RSS-1-0-2-0-an-Atom-formats.html

So che alcuni vecchi script lo usavano.

Vedi anche http://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCEQtwIwAA&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNKqMA5o8cNI&ei=Va8uVJnuJ8L0POztgZgD&usg=AFQjCNFt3fzsd7I6QxCnLkN2w4rhi9gwRg&sig2=PNQCa2YAP3I24aeC3AUAug&bvm=bv.76802529,d.ZWU

Vedi anche http://www.sanwebe.com/2013/07/creating-valid-rss-feed-using-php

Ora controllo. cmq ho fatto una prova con l’extensio efeed; ho creato l’azione feed come mi hai detto




public function actionFeed()

{		

Yii::import('ext.feed.*');

// RSS 2.0 is the default type

$feed = new EFeed();

 

$feed->title= 'Testing RSS 2.0 EFeed class';

$feed->description = 'This is test of creating a RSS 2.0 Feed';

 

$feed->setImage('Testing RSS 2.0 EFeed class','http://www.ramirezcobos.com/rss',

'http://www.yiiframework.com/forum/uploads/profile/photo-7106.jpg');

 

$feed->addChannelTag('language', 'en-us');

$feed->addChannelTag('pubDate', date(DATE_RSS, time()));

$feed->addChannelTag('link', 'http://www.ramirezcobos.com/rss' );

 


 

$item = $feed->createNewItem();

 

$item->title = "first Feed";

$item->link = "http://www.yahoo.com";

$item->date = time();

$item->description = 'This is test of adding CDATA Encoded description <b>EFeed Extension</b>';

// this is just a test!!

$item->setEncloser('http://www.tester.com', '1283629', 'audio/mpeg');

 

$item->addTag('author', 'thisisnot@myemail.com (Antonio Ramirez)');

$item->addTag('guid', 'http://www.ramirezcobos.com/',array('isPermaLink'=>'true'));

 

$feed->addItem($item);

 

$feed->generateFeed();

Yii::app()->end();


		}



se poi vado al link: http://localhost/application/offerte/rss ottengo questo:




This XML file does not appear to have any style information associated with it. The document tree is shown below.

<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>

<title>Testing RSS 2.0 EFeed class</title>

<link>http://www.ramirezcobos.com/rss</link>

<description>

<![CDATA[ This is test of creating a RSS 2.0 Feed

 ]]>

</description>

<image>

<title>Testing RSS 2.0 EFeed class</title>

<link>http://www.ramirezcobos.com/rss</link>

<url>

http://www.yiiframework.com/forum/uploads/profile/photo-7106.jpg

</url>

</image>

<language>en-us</language>

<pubDate>Fri, 03 Oct 2014 16:22:25 +0200</pubDate>

<item>

<title>first Feed</title>

<link>http://www.yahoo.com</link>

<pubDate>Fri, 03 Oct 2014 16:22:25 +0200</pubDate>

<description>

<![CDATA[

This is test of adding CDATA Encoded description <b>EFeed Extension</b>

]]>

</description>

<enclosure url="http://www.tester.com" length="1283629" type="audio/mpeg"></enclosure>

<author>thisisnot@myemail.com (Antonio Ramirez)</author>

<guid isPermaLink="true">http://www.ramirezcobos.com/</guid>

</item>

</channel>

</rss>



Beh… in localhost, e con internet explorer , … prova ad installare FeedReader e vedi se lo digerisce, altrimenti copia il sorgente pagina ed incollalo in qualche rss validator online

da errore qui: rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

nah, questo non è RSS standard, vedi quanti namspace? non ci vanno… fallo a manina o via DOM

Ok! avevo corretto e me lo validava, l’ho integrato anche su joomla per fare una prova e carica, solo che nel title è assente il link!!Ora lo rifaccio a mano come mi hai suggerito!!

Ho seguito l’esempio con il DOM e funziona tutto correttamente ed anche validato :)