Esempio n. 1
0
 public static function fetchByType($type = 1, $page = 1, $perpage = 30)
 {
     if ($type != 0 && $type != 1 && $type != 2) {
         return array();
     }
     $select = self::select();
     if ($type != 0) {
         $select->where('type = ?', $type);
     }
     $select->order('sort asc');
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage($perpage)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $destinations = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $destinationModel = new Application_Model_O_Destination();
             $destinationModel->setId($da->id)->setCity($da->city)->setType($da->type)->setLongitude($da->longitude)->setLatitude($da->latitude)->setImg($da->img)->setSort($da->sort)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($destinations, $destinationModel);
         }
     }
     $res = array('destinations' => $destinations, 'pages' => $pages);
     return $res;
 }
Esempio n. 2
0
 protected function _addPaginator($oOperation)
 {
     //dodaj standardowe metody grida
     //        list($sDBSort, $sDBOrder) = $this->_getDatabaseSort();
     //        $oOperation->setSort($sDBSort);
     //        $oOperation->setOrder($sDBOrder);
     //        $oOperation->setSearch($this->_getDatabaseSearch());
     $oOperation->init();
     //grid paginowany
     $page = $this->getRequest()->getParam('page', 1);
     //        $iResultLimit =  $this->_getDatabaseResultLimit();
     if (method_exists($oOperation, 'pageLimit')) {
         $iResultLimit = $oOperation->pageLimit();
     }
     $adapter = new Zend_Paginator_Adapter_DbSelect($oOperation->getSelect());
     $adapter->setRowCount($oOperation->getSelectCount());
     $paginator = new Zend_Paginator($adapter);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($iResultLimit);
     if ($paginator->count() == 0) {
         Message_Operation_Flash::setMsg('Brak rekordów', Message_Operation_Flash::LEVEL_DANGER);
     }
     $this->view->paginator = $paginator;
     //config
     $this->view->config_url = $this->_oConfig->url;
 }
Esempio n. 3
0
 public static function fetchByDepartmentHospital($department, $hospital, $sort, $page)
 {
     $select = self::select();
     if ($department) {
         $select->where("department like '%{$department}%'")->orWhere("special like '%{$department}%'");
     }
     if ($hospital) {
         $select->where('hospital = ?', $hospital);
     }
     if ($sort == 1) {
         //asc
         $select->order('reservation_number asc');
     } elseif ($sort == 2) {
         //desc
         $select->order('reservation_number desc');
     }
     $select->where('status = 1');
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage(10)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $doctors = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $doctorModel = new Application_Model_O_Doctor();
             $doctorModel->setId($da->id)->setName($da->name)->setAvatar($da->avatar)->setSex($da->sex)->setBirthday($da->birthday)->setEmail($da->email)->setPasswd($da->passwd)->setPhone($da->phone)->setDepartment($da->department)->setPoint($da->point)->setCity($da->city)->setCertified($da->certified)->setSpecial($da->special)->setCountry($da->country)->setIntroduction($da->introduction)->setHospital($da->hospital)->setArea($da->area)->setQualification($da->qualification)->setReservation_fee($da->reservation_fee)->setReservation_number($da->reservation_number)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($doctors, $doctorModel);
         }
     }
     $res = array('doctors' => $doctors, 'pages' => $pages);
     return $res;
 }
Esempio n. 4
0
 public static function fetchAllPage($role, $page = 1, $perpage = 30)
 {
     if ($role != 0 && $role != 1 && $role != 2 && $role != 3) {
         return array();
     }
     $select = self::select();
     if ($role != 0) {
         $select->where('urole = ?', $role)->order('ctime desc');
     }
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage($perpage)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $orders = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $orderModel = new Application_Model_O_MemberCardOrder();
             $orderModel->setId($da->id)->setOrder_id($da->order_id)->setUid($da->uid)->setUrole($da->urole)->setMember_card_id($da->member_card_id)->setTotal_price($da->total_price)->setPayment_status($da->payment_status)->setRemark($da->remark)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($orders, $orderModel);
         }
     }
     $res = array('orders' => $orders, 'pages' => $pages);
     return $res;
 }
Esempio n. 5
0
 public static function fetchByType($type = 1, $filter, $order, $page = 1)
 {
     if ($type != 1 && $type != 2 && $type != 3) {
         return array();
     }
     $select = self::select();
     $select->where('type = ?', $type)->where('status =1');
     if ($filter == 1 || $filter == 2) {
         $select->where('location_type = ?', $filter);
     }
     if ($order == 1) {
         $select->order('adult_dprice desc');
     } elseif ($order == 2) {
         $select->order('adult_dprice asc');
     } elseif ($order == 3) {
         $select->order('sales desc');
     } elseif ($order == 4) {
         $select->order('sales asc');
     }
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage(10)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $travels = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $travelModel = new Application_Model_O_Travel();
             $travelModel->setId($da->id)->setType($da->type)->setLocation_type($da->location_type)->setAdult_oprice($da->adult_oprice)->setAdult_dprice($da->adult_dprice)->setChild_oprice($da->child_oprice)->setChild_dprice($da->child_dprice)->setArea($da->area)->setSales($da->sales)->setTitle($da->title)->setSubtitle($da->subtitle)->setImg($da->img)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($travels, $travelModel);
         }
     }
     $res = array('travels' => $travels, 'pages' => $pages);
     return $res;
 }
Esempio n. 6
0
 /**
  * Create the page object used in View - paginator method
  * @access public
  * @return object
  */
 public function getPages()
 {
     $pages = new stdClass();
     $pageCount = $this->_paginator->count();
     $pages->pageCount = $pageCount;
     $pages->itemCountPerPage = $this->_itemCountPerPage;
     $pages->first = 1;
     $pages->current = (int) $this->_currentPage;
     $pages->last = $pageCount;
     // Previous and next
     if ($this->_currentPage - 1 > 0) {
         $pages->previous = $this->_currentPage - 1;
     }
     if ($this->_currentPage + 1 <= $pageCount) {
         $pages->next = $this->_currentPage + 1;
     }
     // Pages in range
     $pageRange = $this->_paginator->getPageRange();
     if ($pageRange > $pageCount) {
         $pageRange = $pageCount;
     }
     $delta = ceil($pageRange / 2);
     if ($this->_currentPage - $delta > $pageCount - $pageRange) {
         $lowerBound = $pageCount - $pageRange + 1;
         $upperBound = $pageCount;
     } else {
         if ($this->_currentPage - $delta < 0) {
             $delta = $this->_currentPage;
         }
         $offset = $this->_currentPage - $delta;
         $lowerBound = $offset + 1;
         $upperBound = $offset + $pageRange;
     }
     $pages->pagesInRange = $this->_paginator->getPagesInRange($lowerBound, $upperBound);
     $pages->firstPageInRange = min($pages->pagesInRange);
     $pages->lastPageInRange = max($pages->pagesInRange);
     // Item numbers
     if ($this->_currentItems == null) {
         $this->getCurrentItems();
     }
     if ($this->_currentItems !== null) {
         $pages->currentItemCount = $this->_paginator->getCurrentItemCount();
         $pages->itemCountPerPage = $this->_paginator->getItemCountPerPage();
         $pages->totalItemCount = $this->_paginator->getTotalItemCount();
         $pages->firstItemNumber = ($this->_currentPage - 1) * $this->_paginator->getItemCountPerPage() + 1;
         $pages->lastItemNumber = $pages->firstItemNumber + $pages->currentItemCount - 1;
     }
     return $pages;
 }
Esempio n. 7
0
 /**
  * Returns a paginated list of all sites matching the given parameters.
  * 
  * @param array $params
  * @return array
  */
 public static function search(array $params)
 {
     $siteDb = Yadda_Db_Table::getInstance('site');
     $select = $siteDb->select()->setIntegrityCheck(false)->from('site')->joinLeft('deal', 'site.id = deal.site_id', array('latest_deal' => 'MAX(deal.created)'))->where('site.status = ?', 'active')->group('site.id')->order('site.name');
     // fetch
     $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($select));
     $paginator->setCurrentPageNumber(isset($params['page']) ? (int) $params['page'] : 1);
     $paginator->setItemCountPerPage(isset($params['count']) ? (int) $params['count'] : 10);
     $return = array('params' => $params, 'total' => $paginator->getTotalItemCount(), 'page' => $paginator->getCurrentPageNumber(), 'pages' => $paginator->count(), 'results' => array());
     $sites = new Zend_Db_Table_Rowset(array('table' => $siteDb, 'data' => (array) $paginator->getCurrentItems()));
     foreach ($sites as $site) {
         $return['results'][] = self::toArray($site);
     }
     return $return;
 }
Esempio n. 8
0
 public static function search($params)
 {
     // build query
     $subscriptionDb = Yadda_Db_Table::getInstance('subscription');
     $select = $subscriptionDb->select()->setIntegrityCheck(false)->from('subscription')->joinLeft('user', 'subscription.user_id = user.id', array('user_email' => 'email'))->where('subscription.status = ?', 'active')->order('created DESC');
     // fetch
     $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($select));
     $paginator->setCurrentPageNumber(isset($params['page']) ? (int) $params['page'] : 1);
     $paginator->setItemCountPerPage(isset($params['count']) ? (int) $params['count'] : 10);
     $return = array('params' => $params, 'total' => $paginator->getTotalItemCount(), 'page' => $paginator->getCurrentPageNumber(), 'pages' => $paginator->count(), 'results' => array());
     $subscriptions = new Zend_Db_Table_Rowset(array('table' => $subscriptionDb, 'data' => (array) $paginator->getCurrentItems()));
     foreach ($subscriptions as $subscription) {
         $return['results'][] = self::toArray($subscription);
     }
     return $return;
 }
Esempio n. 9
0
 /**
  * Returns a paginated list of regions matching the given parameters.
  * 
  * @param array $params
  * @return array
  */
 public static function search(array $params)
 {
     // build query
     $regionDb = Yadda_Db_Table::getInstance('region');
     $select = $regionDb->select()->from('region')->where('status = ?', 'active')->order('name');
     // fetch
     $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($select));
     $paginator->setCurrentPageNumber(isset($params['page']) ? (int) $params['page'] : 1);
     $paginator->setItemCountPerPage(isset($params['count']) ? (int) $params['count'] : 10);
     $return = array('params' => $params, 'total' => $paginator->getTotalItemCount(), 'page' => $paginator->getCurrentPageNumber(), 'pages' => $paginator->count(), 'results' => array());
     $regions = new Zend_Db_Table_Rowset(array('table' => $regionDb, 'data' => (array) $paginator->getCurrentItems()));
     foreach ($regions as $region) {
         $return['results'][] = self::toArray($region);
     }
     return $return;
 }
Esempio n. 10
0
 public function testPaginator()
 {
     $countries = My_ShantyMongo_Country::all();
     $this->assertEquals(239, $countries->count());
     $paginator = new Zend_Paginator(new Shanty_Paginator_Adapter_Mongo($countries));
     $paginator->setItemCountPerPage(10);
     $paginator->setCurrentPageNumber(3);
     $this->assertEquals(24, $paginator->count());
     // Count pages
     $this->assertEquals(239, $paginator->getTotalItemCount());
     // count total items
     $this->assertEquals(10, $paginator->getCurrentItemCount());
     // count items on this page
     $paginator->getCurrentItems()->rewind();
     $firstItem = $paginator->getCurrentItems()->current();
     $this->assertEquals($firstItem->code, 'BB');
     $this->assertEquals($firstItem->name, 'Barbados');
 }
 public static function fetchAllPage($page = 1, $perpage = 30)
 {
     $select = self::select();
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage($perpage)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $applys = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $applyModel = new Application_Model_O_GlobalConsultationApply();
             $applyModel->setId($da->id)->setDepartment_category_id($da->department_category_id)->setDepartment_id($da->department_id)->setEmail($da->email)->setMobile($da->mobile)->setAge($da->age)->setSex($da->sex)->setLocation($da->location)->setTreatment_time($da->treatment_time)->setOpinion($da->opinion)->setReport($da->report)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($applys, $applyModel);
         }
     }
     $res = array('applys' => $applys, 'pages' => $pages);
     return $res;
 }
Esempio n. 12
0
 public static function fetchAllPage($page = 1, $perpage = 30)
 {
     $select = self::select();
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage($perpage)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $feedbacks = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $feedbackModel = new Application_Model_O_Feedback();
             $feedbackModel->setId($da->id)->setContent($da->content)->setContact($da->contact)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($feedbacks, $feedbackModel);
         }
     }
     $res = array('feedbacks' => $feedbacks, 'pages' => $pages);
     return $res;
 }
Esempio n. 13
0
 public static function fetchAllPage($page = 1, $perpage = 30)
 {
     $select = self::select();
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage($perpage)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $cards = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $cardModel = new Application_Model_O_MemberCard();
             $cardModel->setId($da->id)->setName($da->name)->setOprice($da->oprice)->setDprice($da->dprice)->setPoints($da->points)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($cards, $cardModel);
         }
     }
     $res = array('cards' => $cards, 'pages' => $pages);
     return $res;
 }
 /**
  * Lists all servicePacks matching a criteria
  */
 public function indexAction()
 {
     // Check permissions
     $sp = new ServicePackModel();
     $this->_helper->allowed('list', $sp);
     // Pagination
     $params = $this->_getPaginatorParams();
     // Filters
     $filters = $this->_mapToFilter($this->_getFilterParams());
     $this->_checkFilterParams($filters, ServicePackFilterFields::getWhiteList());
     try {
         $filterList = $this->_spSrv->buildFilterList($filters, true);
     } catch (ValidateException $e) {
         throw $this->_mapException($e, $this->_mapParamToFilter, true);
     }
     $this->_helper->filterNotAllowedFilters('filter_by', $filterList);
     // Search
     $spList = $this->_spSrv->listAll($filterList, $params);
     if ($spList) {
         $list = array();
         foreach ($spList->getItems() as $item) {
             try {
                 $this->_helper->allowed('read', $item);
                 $this->_helper->filterNotAllowedFields('read_field', $item);
                 $list[] = $item;
             } catch (Exception $e) {
                 // Do nothing
             }
         }
         // Simulate pagination
         $it = new ArrayIterator($list);
         $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Iterator($it));
         $paginator->setItemCountPerPage($params['count']);
         // Result
         if ($params['page'] <= $paginator->count()) {
             $iterator = $paginator->getItemsByPage($params['page']);
             $this->view->servicePacks = iterator_to_array($iterator, false);
         } else {
             $this->view->servicePacks = array();
         }
     }
 }
Esempio n. 15
0
 public static function fetchAllPage($page = 1, $perpage = 30)
 {
     $select = self::select();
     $select->order('sort asc');
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage($perpage)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $departments = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $departmentModel = new Application_Model_O_Departments();
             $departmentModel->setId($da->id)->setName($da->name)->setImg($da->img)->setCategory_id($da->category_id)->setSort($da->sort)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($departments, $departmentModel);
         }
     }
     $res = array('departments' => $departments, 'pages' => $pages);
     return $res;
 }
Esempio n. 16
0
 public static function fetchAllPage($type = 1, $page = 1, $perpage = 30)
 {
     $select = self::select();
     $select->where('type = ?', $type)->order('sort asc');
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage($perpage)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $articles = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $articleModel = new Application_Model_O_Article();
             $articleModel->setId($da->id)->setTitle($da->title)->setContent($da->content)->setImg($da->img)->setSort($da->sort)->setType($da->type)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($articles, $articleModel);
         }
     }
     $res = array('articles' => $articles, 'pages' => $pages);
     return $res;
 }
Esempio n. 17
0
 /**
  * ナビゲータの生成
  */
 public function createNavigator($datas, $page, $limit)
 {
     if (!$page) {
         $page = 1;
     }
     if (!$limit) {
         $limit = 10;
     }
     $paginator = null;
     if (gettype($datas) == "object" && get_class($datas) === 'Zend_Db_Table_Select') {
         $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbTableSelect($datas));
     } elseif (gettype($datas) == "object" && get_class($datas) === 'Zend_Db_Select') {
         $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($datas));
     } else {
         $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($datas));
     }
     $paginator->setItemCountPerPage($limit);
     if ($paginator->count() && $page) {
         $paginator->setCurrentPageNumber($page);
     }
     return $paginator;
 }
 /**
  * ナビゲータの生成
  */
 public function createNavigator($datas, $limit = 10)
 {
     // 現在のページ数を保存するためのセッション
     $module_name = $this->getRequest()->getModuleName();
     $class_name = $this->getRequest()->getControllerName();
     $list_path = '/' . $module_name . '/' . $class_name . '/list';
     $session = new Zend_Session_Namespace($list_path);
     $paginator = null;
     if (get_class($datas) === 'Zend_Db_Table_Select') {
         $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbTableSelect($datas));
     } elseif (get_class($datas) === 'Zend_Db_Select') {
         $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($datas));
     } else {
         $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Array($datas));
     }
     // リミットの設定
     if ($this->getRequest()->getParam('limit')) {
         $limit = $this->getRequest()->getParam('limit');
     }
     $session->limit = $limit;
     // ページング
     $paginator->setItemCountPerPage($limit);
     if ($paginator->count() && $this->getRequest()->getParam('page')) {
         $page = $this->getRequest()->getParam('page');
         $session->page = $page;
         $paginator->setCurrentPageNumber($page);
         if ($page === '1') {
             $this->view->assign('first_page', true);
         } else {
             $this->view->assign('first_page', false);
         }
     } else {
         $session->page = 1;
         $this->view->assign('first_page', true);
     }
     $this->view->assign('pages', $paginator->getPages());
     $this->view->assign('paginator', $paginator);
 }
Esempio n. 19
0
 public static function fetchByPlatformPage($os = NULL, $page = 1, $perpage = 30)
 {
     $select = self::select();
     $select->order('version desc');
     if ($os) {
         $select->where('platform = ?', $os);
     }
     $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
     $paginator = new Zend_Paginator($adapter);
     $paginator->setItemCountPerPage($perpage)->setCurrentPageNumber($page);
     $data = $paginator->getCurrentItems();
     $pages = $paginator->count();
     $packages = array();
     if (count($data) > 0) {
         foreach ($data as $da) {
             $packageModel = new Application_Model_O_PackageMgt();
             $packageModel->setId($da->id)->setName($da->name)->setDescription($da->description)->setVersion($da->version)->setPlatform($da->platform)->setUrl($da->url)->setCtime($da->ctime)->setUtime($da->utime)->setStatus($da->status);
             array_push($packages, $packageModel);
         }
     }
     $res = array('packages' => $packages, 'pages' => $pages);
     return $res;
 }
Esempio n. 20
0
 public function listAction()
 {
     if ($this->_request->isXmlHttpRequest()) {
         $pageId = $this->_getParam('page', 1);
         $limit = $this->_getParam('limit', 10);
         $sortCol = $this->_getParam('sortCol', 1);
         $sortOrder = $this->_getParam('sortOrder', 'asc');
         $whereParam = $this->_getParam('where', '');
         $modelTable = $this->_getModel();
         $modelTableName = $modelTable->info(Centurion_Db_Table_Abstract::NAME);
         $where = $this->_getSelect();
         if (get_magic_quotes_gpc()) {
             $whereParam = stripslashes($whereParam);
         }
         $whereParam = (array) json_decode($whereParam);
         foreach ($whereParam as $param => $values) {
             if (isset($this->_filters[$param]['type']) && $this->_filters[$param]['type'] === self::FILTER_EXPR) {
                 foreach ($values as $key => $value) {
                     $where->filter($this->_filters[$param]['data'][$value]['expr']);
                 }
                 unset($whereParam[$param]);
             }
             if (isset($this->_filters[$param]) && $this->_filters[$param]['type'] === self::FILTER_CUSTOM && is_callable($this->_filters[$param]['callback'])) {
                 $where = call_user_func($this->_filters[$param]['callback'], $where, $values, $param);
                 unset($whereParam[$param]);
             }
             if (isset($this->_filters[$param]['method']) && is_callable($this->_filters[$param]['method'])) {
                 call_user_func_array($this->_filters[$param]['method'], array($where, $values));
                 unset($whereParam[$param]);
             }
         }
         $where->filter($whereParam);
         $cols = array();
         $naturals = $modelTable->info(Centurion_Db_Table_Abstract::COLS);
         $queryCols = $where->getColumnsName();
         foreach ($this->_displays as $col => $value) {
             if (is_array($value)) {
                 if ($value['expr'] instanceof Zend_Db_Expr) {
                     $cols[] = $value['expr'];
                 }
             } else {
                 if (in_array($col, $naturals)) {
                     if (!$where->isInQuery($col, $modelTableName)) {
                         $cols[] = new Zend_Db_Expr(sprintf(sprintf('%s.%s', $modelTable->getAdapter()->quoteIdentifier($modelTableName), $modelTable->getAdapter()->quoteIdentifier($col))));
                     }
                 } else {
                     if (!in_array($col, $queryCols)) {
                         $cols[] = new Zend_Db_Expr(sprintf('%s AS %s', $where->addRelated($col), $modelTable->getAdapter()->quoteIdentifier($col)));
                     }
                 }
             }
         }
         $where->columns($cols);
         if (in_array($sortCol, array_keys($this->_extras)) && method_exists($this, 'resolveCol' . ucfirst($sortCol))) {
             $sortCol = $this->{'resolveCol' . ucfirst($sortCol)}($where);
             $where->order(sprintf('%s %s', $sortCol, $sortOrder));
         } else {
             if ($sortCol !== 1 && in_array($sortCol, array_keys($this->_displays))) {
                 $where->order(sprintf('%s %s', $sortCol, $sortOrder));
             }
         }
         $this->_preList();
         $adapter = new Zend_Paginator_Adapter_DbTableSelect($where);
         $paginator = new Zend_Paginator($adapter);
         $paginator->setCurrentPageNumber($pageId)->setItemCountPerPage($limit);
         $result = array('pageId' => $paginator->getCurrentPageNumber(), 'nbPages' => $paginator->count(), 'nbRows' => $paginator->getTotalItemCount(), 'rows' => array());
         foreach ($paginator->getCurrentItems() as $modelRow) {
             $tempArray = $modelRow->toArray();
             foreach ($this->_extras as $key => $extra) {
                 if (method_exists($this, $key)) {
                     $tempArray[$key] = $this->{$key}($modelRow);
                 } elseif (method_exists($modelRow, $key)) {
                     $tempArray[$key] = call_user_func(array($modelRow, $key));
                 } else {
                     $tempArray[$key] = $modelRow->{$key};
                 }
             }
             array_push($result['rows'], array('id' => $modelRow->pk, 'cell' => $tempArray));
         }
         $result = $this->_postList($result);
         $json = Zend_Json::encode($result);
         $this->getResponse()->appendBody($json);
     }
 }
 public function testGetsPageCount()
 {
     $this->assertEquals(11, $this->_paginator->count());
 }
Esempio n. 22
0
 public function testGetPageCount()
 {
     $this->_restorePaginatorDefaults();
     $this->assertEquals(11, $this->_paginator->count());
 }
Esempio n. 23
0
 /**
  * Returns an array of all pages given a page number and range.
  *
  * @param  Zend_Paginator $paginator
  * @param  integer $pageRange Unused
  * @return array
  */
 public function getPages(Zend_Paginator $paginator, $pageRange = null)
 {
     return $paginator->getPagesInRange(1, $paginator->count());
 }
Esempio n. 24
0
 protected function _addSecPaginator($oOperation)
 {
     $oOperation->init();
     //grid paginowany
     $page = $this->getRequest()->getParam('form_page', $this->getRequest()->getParam('page1', 1));
     $iResultLimit = $this->_getDatabaseResultLimit();
     if (method_exists($oOperation, 'pageLimit')) {
         $iResultLimit = $oOperation->pageLimit();
     }
     $adapter = new Zend_Paginator_Adapter_DbSelect($oOperation->getSelect());
     $adapter->setRowCount($oOperation->getSelectCount());
     $paginator = new Zend_Paginator($adapter);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($iResultLimit);
     if ($paginator->count() == 0) {
         Message_Operation_Flash::setMsg('Brak rekordów', Message_Operation_Flash::LEVEL_DANGER);
     }
     $this->view->paginator2 = $paginator;
     //config
     $this->view->config_url2 = $this->_oConfig->url;
 }