Déc
7

Zend Framework : Aide de vue pour afficher les données issues d’un flux RSS

Voici une aide de vue Zend Framework qui vous permettra de lire les données provenant d’un flux RSS.
Pour cela nous allons utiliser la classe Zend_Feed_Reader

Voilà donc votre helper Rss.php situé dans votre dossier views/helpers/

<?php
 
class View_Helper_Rss extends Zend_View_Helper_Abstract
{
 
    public function rss($url)
    {
		$reader = new Zend_Feed_Reader();
    	        //Si vous avez besoin de passer par un proxy
		$config = array('proxy_host'=>'localhost','proxy_port'=>8080, 'proxy_user'=>'user', 'proxy_password'=>'password');
	    	   $adapter = new Zend_Http_Client_Adapter_Proxy();
		   $adapter->setConfig($config);
	    	   $reader->getHttpClient()->setAdapter($adapter);
 
 
    	try {
	    	$feed = $reader->import($url);
 
			$data = array(
			    'title'        => $feed->getTitle(),
			    'link'         => $feed->getLink(),
			    'dateModified' => $feed->getDateModified(),
			    'description'  => $feed->getDescription(),
			    'language'     => $feed->getLanguage(),
			    'entries'      => array(),
			);
 
			foreach ($feed as $entry) {
			    $edata = array(
			        'title'        => $entry->getTitle(),
			        'description'  => $entry->getDescription(),
			        'dateModified' => $entry->getDateModified(),
			        'authors'       => $entry->getAuthors(),
			        'link'         => $entry->getLink(),
			        'content'      => $entry->getContent()
			    );
			    $data['entries'][] = $edata;
			}
 
			return $data['entries'];
    	} catch (Zend_Exception $e) {
    		throw new Zend_Exception('Impossible de récupérer le flux RSS');
    	}
    }
 
}

Ensuite dans votre vue vous l’appelez avec en paramètre l’url du flux RSS à charger.

<?php 
      	//On va récupérer le flux rss du site du zéro par exemple	
            $urlRss = 'http://www.siteduzero.com/Templates/xml/tutoriels_fr.xml';
      		try {
      			$actusRss =  $this->rss($urlRss);	
      		} catch(Zend_Exception $e){
      			echo $e->getMessage();	
      		}
 
      		?>
<?php 
//Ensuite vous parcourez vos résultats avec un partialLoop par exemple
echo $this->partialLoop('front-commun/actuRss.phtml', $actusRss); ?>




Poster un commentaire

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes