Пример #1
0
 public function testSetIdThrowsExceptionOnInvalidUri()
 {
     $writer = new Zend_Feed_Writer_Feed();
     try {
         $writer->setId('http://');
         $this->fail();
     } catch (Zend_Feed_Exception $e) {
     }
 }
 /**
  * Create an RSS feed.
  */
 public function rssAction()
 {
     $documents = $this->getPages($this->path, $this->limit, $this->offset);
     $description = $this->description;
     $feed = new Zend_Feed_Writer_Feed();
     $feed->setTitle($this->defaultTitle);
     if (empty($this->description)) {
         $description = $this->defaultTitle;
     }
     $feed->setDescription($description);
     $feed->setLink($this->baseUrl . '/');
     $feed->setFeedLink($this->baseUrl . $_SERVER['REQUEST_URI'], 'rss');
     $feed->setId($this->baseUrl);
     $feed->addAuthor($this->author);
     $modDate = 0;
     foreach ($documents as $document) {
         if ($document->hasProperty('showInFeed') && !$document->getProperty('showInFeed')) {
             continue;
         }
         if ($document->getModificationDate() > $modDate) {
             $modDate = $document->getModificationDate();
         }
         $content = trim(str_replace(' ', ' ', $document->elements[$this->documentBody]->text));
         $descr = $document->getDescription();
         $title = $document->title;
         if (empty($title)) {
             $title = $this->defaultTitle;
         }
         $entry = $feed->createEntry();
         $entry->setTitle($title);
         $entry->setLink($this->baseUrl . $document->getFullPath());
         $entry->setDateModified($document->getModificationDate());
         $entry->setDateCreated($document->getCreationDate());
         if (!empty($descr)) {
             $entry->setDescription($descr);
         }
         if (!empty($content)) {
             $entry->setContent($content);
         }
         $feed->addEntry($entry);
     }
     $feed->setDateModified($modDate);
     $this->getResponse()->setHeader('Content-Type', 'application/rss+xml; charset=utf-8');
     echo $feed->export('rss');
     exit;
 }