public function indexAction() { $searchform = new AlbumSearchForm(); $searchform->get('submit')->setValue('Search'); $select = new Select(); $order_by = $this->params()->fromRoute('order_by') ? $this->params()->fromRoute('order_by') : 'id'; $order = $this->params()->fromRoute('order') ? $this->params()->fromRoute('order') : Select::ORDER_ASCENDING; $page = $this->params()->fromRoute('page') ? (int) $this->params()->fromRoute('page') : 1; $select->order($order_by . ' ' . $order); $search_by = $this->params()->fromRoute('search_by') ? $this->params()->fromRoute('search_by') : ''; $where = new \Zend\Db\Sql\Where(); $formdata = array(); if (!empty($search_by)) { $formdata = (array) json_decode($search_by); if (!empty($formdata['artist'])) { $where->addPredicate(new \Zend\Db\Sql\Predicate\Like('artist', '%' . $formdata['artist'] . '%')); } if (!empty($formdata['title'])) { $where->addPredicate(new \Zend\Db\Sql\Predicate\Like('title', '%' . $formdata['title'] . '%')); } } if (!empty($where)) { $select->where($where); } $album = $this->getAlbumTable()->fetchAll($select); $totalRecord = $album->count(); $itemsPerPage = 2; $album->current(); $paginator = new Paginator(new paginatorIterator($album)); $paginator->setCurrentPageNumber($page)->setItemCountPerPage($itemsPerPage)->setPageRange(7); $searchform->setData($formdata); return new ViewModel(array('search_by' => $search_by, 'order_by' => $order_by, 'order' => $order, 'page' => $page, 'paginator' => $paginator, 'pageAction' => 'album', 'form' => $searchform, 'totalRecord' => $totalRecord)); }
public function indexAction() { $this->changeViewModel('json'); $query = $this->getRequest()->getQuery(); $form = new Form\AlbumSearchForm(); $form->bind($query); if ($form->isValid()) { $query = $form->getData(); } else { return array('form' => $form, 'items' => array()); } $itemModel = Api::_()->getModel('Album\\Model\\Album'); $items = $itemModel->setItemList($query)->getAlbumList(); $items = $items->toArray(array('self' => array(), 'join' => array('Count' => array('*'), 'File' => array('self' => array('*', 'getThumb()'))))); if (count($items) > 0) { foreach ($items as $key => $item) { if (count($item['File']) > 0) { unset($items[$key]['File'][0]); $items[$key]['File'] = $item['File'][0]; } else { unset($items[$key]['File']); } } } $paginator = $itemModel->getPaginator(); $paginator = $paginator ? $paginator->toArray() : null; if (Api::_()->isModuleLoaded('User')) { $userList = array(); $userList = $itemModel->getUserList(array('columns' => array('id', 'userName', 'email')))->toArray(array('self' => array('getEmailHash()'))); $items = $itemModel->combineList($items, $userList, 'User', array('user_id' => 'id')); } return new JsonModel(array('items' => $items, 'paginator' => $paginator)); }
public function restIndexAlbum() { $query = $this->getRequest()->getQuery(); $form = new Form\AlbumSearchForm(); $form->bind($query); if ($form->isValid()) { $query = $form->getData(); } else { return array('form' => $form, 'items' => array()); } $itemModel = Api::_()->getModel('Album\\Model\\Album'); $items = $itemModel->setItemList($query)->getAlbumList(); $paginator = $itemModel->getPaginator(); return array('form' => $form, 'items' => $items, 'query' => $query, 'paginator' => $paginator); }