protected function _generateFeedContainer() { $entries = Doctrine_Query::create()->from('Zfplanet_Model_Entry')->orderBy('publishedDate DESC')->limit(20)->execute(); $now = new Zend_Date(); $feed = new Zend_Feed_Writer_Feed(); // TODO: Extract site info to config file and detect feed DATA $feed->setTitle('ZF Planet'); $feed->setDescription('Zend Framework Blog Planet'); $feed->setDateModified($now); $feed->setLink($this->_getBaseUri()); $feed->setFeedLink($this->_getBaseUri() . 'feed/atom', 'atom'); $feed->setFeedLink($this->_getBaseUri() . 'feed/rss', 'rss'); $feed->addHubs(array('http://pubsubhubbub.appspot.com/')); foreach ($entries as $data) { $entry = $feed->createEntry(); $entry->setTitle($data->title); $entry->addAuthor(array('name' => $data->author)); if (!empty($data->description)) { $entry->setDescription($data->description); } $entry->setLink($data->uri); $entry->setContent($data->content); $publishedDate = new Zend_Date($data->publishedDate, Zend_Date::ISO_8601); $entry->setDateCreated($publishedDate); $updatedDate = new Zend_Date($data->updatedDate, Zend_Date::ISO_8601); $entry->setDateModified($updatedDate); $feed->addEntry($entry); $source = $entry->createSource(); $source->setTitle($data->Feed->FeedMeta->title); if (isset($data->Feed->FeedMeta->description) && !empty($data->Feed->FeedMeta->description)) { $source->setDescription($data->Feed->FeedMeta->description); } $source->setLink($data->Feed->FeedMeta->link); $source->setFeedLink($data->Feed->FeedMeta->feedLink, 'atom'); $updatedDate = new Zend_Date($data->Feed->lastSynchronised, Zend_Date::ISO_8601); $source->setDateModified($updatedDate); $entry->setSource($source); } return $feed; }
public function testAddsManyHubUrls() { $writer = new Zend_Feed_Writer_Feed(); $writer->addHubs(array('http://www.example.com/hub', 'http://www.example.com/hub2')); $this->assertEquals(array('http://www.example.com/hub', 'http://www.example.com/hub2'), $writer->getHubs()); }