Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-01-2011 09:06:11

Myfred
Membre
Date d'inscription: 06-02-2009
Messages: 42
Site web

[ZF 1.11.2] Etendre Zend_Feed

Bonjour,
maintenant que l'api de google url shortener est sortie, j'ai souhaité remplacé les liens de mes flux rss
avec des liens raccourci en utilisant le service goo.gl

voici la partie dans ma vue:

Code:

<?php 

Zend_Feed_Reader::addPrefixPath('My_Feed_Reader_Extension', APP_PATH.'/../library/My/Feed/Reader/Extension');
Zend_Feed_Reader::registerExtension('GoogleUrlShortener');
        
$feedList = Zend_Feed_Reader::import(Zend_Registry::get('config')->feed->path);
                                                                    
foreach(new LimitIterator($feedList, 0, 5) as $feed){
                                                           
      echo '<a href="'.$feed->getShortenerUrl().'">'.$this->escape($feed->getTitle()).'</a>';
                        
}
                    
?>

La fonction getShortenerUrl est une methode que j'ai implémenté dans une extension nommé "GoogleUrlShortener" que voici:

Code:

<?php 

class My_Feed_Reader_Extension_GoogleUrlShortener_Entry
    extends Zend_Feed_Reader_Extension_EntryAbstract
{

    protected static $_client;
    
    
    public function __construct(DOMElement $entry, $entryKey, $type = null){
        
        parent::__construct($entry, $entryKey, $type);
        
         if(null == self::$_client){
        
            $adapter = new Zend_Http_Client_Adapter_Curl();
            self::$_client = new Zend_Http_Client(Zend_Registry::get('config')->googleUrlShortener->path);
            self::$_client->setHeaders(array('Content-Type' => 'application/json'));
            self::$_client->setAdapter($adapter);
                }
        
        
    }
    
    public function getShortenerUrl(){
             
        $link = $this->getLink();
                
        self::$_client->setRawData("{'longUrl' : '".$link."'}");            
        $reponse = self::$_client->request("POST");
        
        $link = Zend_Json::decode($reponse->getBody());
               
        return  $link['id'];
             
    }
    
    protected function _registerNamespaces(){

        $this->_xpath->registerNamespace('googleShortenerUrl', Zend_Registry::get('config')->googleUrlShortener->path);
        
    }
    
    
    
}

Et mon problème, c'est que je n'arrive pas à récupérer le lien via  $link = $this->getLink();
j'ai essayé plein de chose, impossible de trouver comment récupéré le lien de l'itération en cours.

Quelqu'un peut il m'éclairer ?
merci par avance.

Dernière modification par Myfred (12-01-2011 09:07:39)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages