/** * View blog author */ public function authorAction() { if (!($login = $this->_getParam('login'))) { throw new Zend_Controller_Action_Exception('Page not found'); } $users = new Users_Model_User_Table(); if (!($row = $users->getByLogin($login))) { throw new Zend_Controller_Action_Exception('Blog not found'); } $post = new Blog_Model_Post_Table(); $source = $post->getSelect(null, $row->id); $paginator = Zend_Paginator::factory($source); $paginator->getView()->route = 'blogauthor'; $paginator->setItemCountPerPage($this->_itemsPerPage); $paginator->setCurrentPageNumber($this->_getParam('page')); $this->view->paginator = $paginator; $this->view->author = $row; $this->render('index'); }
/** * Edit my post * * @throws Zend_Controller_Action_Exception */ public function editAction() { if (!($alias = $this->_getParam('alias'))) { throw new Zend_Controller_Action_Exception('Page not found'); } $posts = new Blog_Model_Post_Table(); if (!($post = $posts->getByAlias($alias))) { throw new Zend_Controller_Action_Exception('Post not found'); } if (!$post->isOwner()) { throw new Zend_Controller_Action_Exception('Page is forbidden'); } $form = new Blog_Form_Post_Edit(); $form->setDefaults($post->toArray()); if ($this->getRequest()->isPost() && $form->isValid($this->_getAllParams())) { $post->setFromArray($form->getValues()); $post->save(); $this->_helper->flashMessenger->addMessage('Post saved'); $this->_helper->redirector->gotoRoute(array('alias' => $post->alias), 'blogpost'); } $this->view->form = $form; }
/** * 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'); }
public function tearDown() { $table = new Blog_Model_Post_Table(); $table->delete('1'); $table = new Categories_Model_Category_Table(); $table->delete(' id = 43'); $table = new Users_Model_User_Table(); $table->delete(' id = ' . $this->_fixture['user']['id']); }