'-', ); $permalink = $post->getTitle(); foreach ($chars as $ch => $rep) { $permalink = str_replace($ch, $rep, $permalink); } return strtolower($permalink); } public function __construct($dbtable = null) { parent::__construct($dbtable); $this->_mapperUser = new Mapper_User(new Table_User()); } protected function _createBlogPost($obj) { $blogPost = new BlogPost(); if ($obj instanceof Zend_Db_Table_Row) { $blogPost->setId($obj->id); $blogPost->setTitle($obj->title); $blogPost->setContent($obj->content); $blogPost->setPubDate(new Fiktiv_Date($obj->pubDate)); $blogPost->setAuthor($this->_mapperUser->findById($obj->userId)); } else { $blogPost = null; } return $blogPost; } public function findById($id) { if (is_numeric($id)) { return $this->_createBlogPost($this->_dbTable->find($id)->current()); } return null; } public function findAllPostByAuthor($user) { if ($user instanceof User) { return $this->_createBlogPost($this->_dbTable->findByUser($user->getId())); } } public function findAll($limit = null) { $rows = $this->_dbTable->fetchAll(null, 'pubDate DESC'); $posts = array(); foreach ($rows as $row) { $posts[] = $this->_createBlogPost($row); } return $posts; } }