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));
 }
Example #2
0
 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));
 }
Example #3
0
 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);
 }