/** * Get Zend_Db_Table_Select * * @param object|integer $category * @param integer $author * @param string $date * @return Zend_Db_Table_Select */ public function getSelect($category = null, $author = null, $date = 'NOW') { $users = new Users_Model_User_Table(); $categories = new Categories_Model_Category_Table(); $select = $this->select()->setIntegrityCheck(false); $select->from(array('p' => $this->_name), array('*'))->joinLeft(array('u' => $users->info('name')), 'p.userId = u.id', array('login'))->joinLeft(array('c' => $categories->info('name')), 'c.id = p.categoryId', array('categoryTitle' => 'title', 'categoryAlias' => 'alias'))->group('p.id')->where('p.status=?', Blog_Model_Post::STATUS_PUBLISHED)->order('published DESC'); if ($date) { if ('NOW' == $date) { $date = date('Y-m-d H:i:s'); } $select->where('published <=?', $date); } if ($category) { if (!$category instanceof Zend_Db_Table_Row_Abstract) { $manager = new Blog_Model_Category_Manager(); $category = $manager->getById($category); } //$separator = Categories_Model_Category::PATH_SEPARATOR; $select->where('c.path LIKE ?', '%' . $category->alias . '%'); } return $select; }