Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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:
<?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:
<?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