public function indexAction() { $this->_helper->content->setEnabled(); $params = $this->_getAllParams(); $workTbl = new Book_Model_DbTable_Works(); $workTblName = $workTbl->info(Zend_Db_Table_Abstract::NAME); $workSelect = $workTbl->getSelect(); $workSelect->order('creation_date DESC'); if (!empty($params['tag'])) { $tagMapTbl = Engine_Api::_()->getDbtable('TagMaps', 'core'); $tagMapTblName = $tagMapTbl->info('name'); $workSelect->joinLeft($tagMapTblName, "{$tagMapTblName}.resource_id = {$workSelect}.work_id", NULL)->where($tagMapTblName . '.resource_type = ?', 'book_work')->where($tagMapTblName . '.tag_id = ?', $params['tag']); } if (!empty($params['text'])) { $workSelect->where("{$workTblName}.title LIKE ?", "%{$params['text']}%"); } if (!empty($params['author'])) { $userTbl = Engine_Api::_()->getItemTable('user'); $userTblName = $userTbl->info(Zend_Db_Table_Abstract::NAME); $workSelect->join($userTblName, "{$workTblName}.user_id = {$userTblName}.user_id", array()); $workSelect->where("{$userTblName}.displayname LIKE ?", "%{$params['author']}%"); } $this->view->viewer = Engine_Api::_()->user()->getViewer(); $this->view->paginator = $paginator = Zend_Paginator::factory($workSelect); $paginator->setCurrentPageNumber($this->_getParam('page', 1)); $paginator->setItemCountPerPage(10); }
public function indexAction() { $numberOfWorks = $this->_getParam('numberOfWorks', 5); $request = Zend_Controller_Front::getInstance()->getRequest(); if ($request->isPost()) { $this->getElement()->clearDecorators(); } $workTable = new Book_Model_DbTable_Works(); $workTableName = $workTable->info('name'); $workSelect = $workTable->getSelect()->order("{$workTableName}.creation_date DESC"); $workSelect->limit($numberOfWorks); $this->view->works = $works = $workTable->fetchAll($workSelect); $this->view->thumbnailOnly = $this->_getParam('thumbnailOnly', 0); }
public function indexAction() { $request = Zend_Controller_Front::getInstance()->getRequest(); if ($request->isPost()) { $this->getElement()->removeDecorator('title'); } $numberOfWorks = $this->_getParam('itemCountPerPage'); $workTable = new Book_Model_DbTable_Works(); $workTableName = $workTable->info('name'); $workSelect = $workTable->getSelect(); $workSelect->limit($numberOfWorks); $workSelect->order('RAND()'); $this->view->works = $workTable->fetchAll($workSelect); }
public function indexAction() { // Get subject and check auth $subject = Engine_Api::_()->core()->getSubject(); $workTable = new Book_Model_DbTable_Works(); $workTableName = $workTable->info(Zend_Db_Table_Abstract::NAME); $workSelect = $workTable->getSelect(); $workSelect->where("{$workTableName}.user_id = ?", $subject->getIdentity()); $workSelect->order("{$workTableName}.creation_date DESC"); $this->view->works = $works = $workTable->fetchAll($workSelect); // Do not render if nothing to show if (count($works) == 0) { return $this->setNoRender(); } }