Пример #1
0
 public function searchAction()
 {
     if ($datas = $this->getRequest()->getPost()) {
         $html = '';
         try {
             if (empty($datas['link']) or !Zend_Uri::check($datas['link'])) {
                 throw new Exception($this->_('Please enter a valid url'));
             }
             $result = Zend_Feed_Reader::findFeedLinks($datas['link']);
             //On a soit un flux directement, soit une URL sans flux trouvable
             if (count($result) == 0) {
                 try {
                     $feed = Zend_Feed_Reader::import($datas['link']);
                     $html = $this->_saveFeed($datas);
                 } catch (Exception $e) {
                     $html = array('message' => $this->_("No RSS feed could be found"), 'message_button' => 1, 'message_loader' => 1);
                 }
                 //On a une adresse avec des flux
             } else {
                 $feeds = array();
                 foreach ($result as $feed) {
                     if (!empty($feed['href'])) {
                         $feeds[] = $feed['href'];
                     }
                 }
                 if (!isset($datas['feed_id'])) {
                     $id = 'new';
                 } else {
                     $id = $datas['feed_id'];
                 }
                 $html = array('links' => $feeds, 'id' => $id);
             }
         } catch (Exception $e) {
             $html = array('message' => $this->_("No RSS feed could be found"), 'message_button' => 1, 'message_loader' => 1);
         }
         $this->getLayout()->setHtml(Zend_Json::encode($html));
     }
 }
 /**
  * @group ZF-8330
  */
 public function testGetsFeedLinksAndNormalisesRelativeUrlsOnUriWithPath()
 {
     try {
         $currClient = Zend_Feed_Reader::getHttpClient();
         $testAdapter = new Zend_Http_Client_Adapter_Test();
         $testAdapter->setResponse(new Zend_Http_Response(200, array(), '<!DOCTYPE html><html><head><link rel="alternate" type="application/rss+xml" href="../test.rss"><link rel="alternate" type="application/atom+xml" href="/test.atom"></head><body></body></html>'));
         Zend_Feed_Reader::setHttpClient(new Zend_Http_Client(null, array('adapter' => $testAdapter)));
         $links = Zend_Feed_Reader::findFeedLinks('http://foo/bar');
         Zend_Feed_Reader::setHttpClient($currClient);
     } catch (Exception $e) {
         $this->fail($e->getMessage());
     }
     $this->assertEquals('http://foo/test.rss', $links->rss);
     $this->assertEquals('http://foo/test.atom', $links->atom);
 }