/** * Author's blog rss * * @throws Zend_Controller_Action_Exception */ public function authorAction() { $limit = 10; if (!($login = $this->_getParam('login'))) { throw new Zend_Controller_Action_Exception('Page not found'); } $users = new Users_Model_User_Table(); if (!($user = $users->getByLogin($login))) { throw new Zend_Controller_Action_Exception('Page not found'); } $url = $this->_helper->url; $serverUrl = $this->_request->getScheme() . '://' . $this->_request->getHttpHost(); $title = ucfirst($user->login) . "'s Blog Rss Feed"; $link = $url->url(array('login' => $user->login), 'blogauthor'); $feed = new Zend_Feed_Writer_Feed(); $feed->setTitle($title); $feed->setLink($serverUrl . $link); $feed->setFeedLink('http://www.example.com/atom', 'atom'); $feed->addAuthor(array('name' => 'Blog Owner Name', 'email' => $user->email, 'uri' => $serverUrl)); $posts = new Blog_Model_Post_Table(); $select = $posts->getSelect(null, $user->id); $feed->setDateModified(time()); foreach ($posts->fetchAll($select->limit($limit)) as $i => $row) { if (0 == $i) { $feed->setDateModified(strtotime($row->updated)); } $postUrl = $url->url(array('alias' => $row->alias), 'blogpost'); $entry = $feed->createEntry(); $entry->setTitle($row->title); $entry->setLink($serverUrl . $postUrl); $entry->addAuthor($row->login, null, null); $entry->setDateModified(strtotime($row->updated)); $entry->setDateCreated(strtotime($row->published)); $entry->setDescription($row->teaser); $feed->addEntry($entry); } echo $feed->export('atom'); }