/** * Get current items to display on current page * @access public * @return object ArrayIterator */ public function getCurrentItems() { $this->_paginator->setItemCountPerPage($this->_itemCountPerPage); $this->_paginator->setCurrentPageNumber($this->_currentPage); if ($this->_currentItems === null) { $this->_currentItems = $this->_paginator->getCurrentItems(); } return $this->_currentItems; }
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; }
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; }
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; }
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; }
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 function testWithCacheDisabled() { $this->_paginator->setCacheEnabled(false); $this->_paginator->setCurrentPageNumber(1)->getCurrentItems(); $cachedPageItems = $this->_paginator->getPageItemCache(); $expected = new \ArrayIterator(range(1, 10)); $this->assertEquals(array(), $cachedPageItems); $pageItems = $this->_paginator->getCurrentItems(); $this->assertEquals($expected, $pageItems); }
public function testGetCurrentItems() { $this->_restorePaginatorDefaults(); $items = $this->_paginator->getCurrentItems(); $this->assertType('ArrayIterator', $items); $count = 0; foreach ($items as $item) { $count++; } $this->assertEquals(10, $count); }
/** * 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; }
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; }
/** * 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; }
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; }
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; }
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; }
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; }
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; }
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; }
/** * Create the grid data structure * * @return object */ protected function _createGridData(Zend_Controller_Request_Abstract $request) { // Instantiate Zend_Paginator with the required data source adaptor if (!$this->_paginator instanceof Zend_Paginator) { $this->_paginator = new Zend_Paginator($this->_adapter); $this->_paginator->setDefaultItemCountPerPage($request->getParam('rows', $this->_defaultItemCountPerPage)); } // Filter items by supplied search criteria if ($request->getParam('_search') == 'true') { $filter = $this->_getFilterParams($request); $this->_paginator->getAdapter()->filter($filter['field'], $filter['value'], $filter['expression'], $filter['options']); } // Sort items by the supplied column field if ($request->getParam('sidx')) { $this->_paginator->getAdapter()->sort($request->getParam('sidx'), $request->getParam('sord', 'asc')); } // Pass the current page number to paginator $this->_paginator->setCurrentPageNumber($request->getParam('page', 1)); // Fetch a row of items from the adapter $rows = $this->_paginator->getCurrentItems(); $grid = new stdClass(); $grid->page = $this->_paginator->getCurrentPageNumber(); $grid->total = $this->_paginator->getItemCountPerPage(); $grid->records = $this->_paginator->getTotalItemCount(); $grid->rows = array(); foreach ($rows as $k => $row) { if (isset($row['id'])) { $grid->rows[$k]['id'] = $row['id']; } $grid->rows[$k]['cell'] = array(); foreach ($this->_columns as $column) { array_push($grid->rows[$k]['cell'], $column->cellValue($row)); } } return $grid; }
public function reportAction() { $db = Zend_Registry::get('db'); $config = Zend_Registry::get('config'); $format = new Formata(); // View labels $this->view->seq = $this->view->translate("SEQ"); $this->view->calldate = $this->view->translate("Call's date"); $this->view->origin = $this->view->translate("Source"); $this->view->destination = $this->view->translate("Destination"); $this->view->callstatus = $this->view->translate("Status"); $this->view->duration = $this->view->translate("Duration"); $this->view->conversation = $this->view->translate("Conversation"); $this->view->cost_center = $this->view->translate("Cost Center"); $this->view->city = $this->view->translate("City"); $this->view->state = $this->view->translate("State"); $this->view->filter = $this->view->translate("Filter"); $this->view->calls = $this->view->translate("Calls"); $this->view->totals_sub = $this->view->translate("Totals"); $this->view->times = $this->view->translate("Times"); $this->view->tot_tariffed = $this->view->translate("Total tariffed"); $this->view->answered = $this->view->translate("Answered"); $this->view->nanswered = $this->view->translate("Not Answered"); $this->view->busy = $this->view->translate("Busy"); $this->view->failure = $this->view->translate("Failed"); $this->view->other = $this->view->translate("Other"); $this->view->tarrifation = $this->view->translate("Charging"); $this->view->wait = $this->view->translate("Waiting"); $this->view->sub_total = $this->view->translate("Subtotal"); $this->view->gravation = $this->view->translate("Records"); $this->view->back = $this->view->translate("Back"); $defaultNS = new Zend_Session_Namespace('call_sql'); $this->view->breadcrumb = Snep_Breadcrumb::renderPath(array($this->view->translate("Reports"), $this->view->translate("Calls"), $defaultNS->sub_title)); $this->view->totals = $defaultNS->totais; $this->view->tariffed = $defaultNS->view_tarif; $this->view->files = $defaultNS->view_files; $this->view->status = $defaultNS->status; $this->view->compress_files = $this->view->translate("Compress selected files"); $this->view->duration_call = $format->fmt_segundos(array("a" => $defaultNS->totais['duration'], "b" => 'hms')); $this->view->bill_sec = $format->fmt_segundos(array("a" => $defaultNS->totais['billsec'], "b" => 'hms')); $this->view->wait_call = $format->fmt_segundos(array("a" => $defaultNS->totais['espera'], "b" => 'hms')); $row = $defaultNS->row; if ($defaultNS->report_type == 'synth') { // Cost center treatment $cc = $defaultNS->contas; if ($cc != '') { $valores = ''; $sqlcc = "select nome from ccustos where codigo IN (" . $cc . ")"; $ccs = $db->query($sqlcc)->fetchAll(PDO::FETCH_ASSOC); $ccusto_sintetic = ''; foreach ($ccs as $id => $value) { $ccusto_sintetic .= $ccs[$id]['nome'] . ", "; } } else { $ccusto_sintetic = $this->view->translate("Any"); } $this->view->cost_center_res = $ccusto_sintetic; // Groups treatment $sint_destino = $defaultNS->dst; $sint_groupdst = $defaultNS->groupdst; if ($sint_destino != '' && $sint_groupdst == '') { $sint_dest = $sint_destino; } if ($sint_groupdst != '' && $sint_destino == '') { $sqldst = "select name from peers where peers.group = '{$sint_groupdst}' "; $sint_dst = $db->query($sqldst)->fetchAll(PDO::FETCH_ASSOC); $sint_dest = ''; foreach ($sint_dst as $id => $value) { $sint_dest .= $sint_dst[$id]['name'] . ", "; } } if (!empty($sint_dest)) { $this->view->sinteticdst = $sint_dest; } $sint_origem = $defaultNS->src; $sint_groupsrc = $defaultNS->groupsrc; if ($sint_origem != '' && $sint_groupsrc == '') { $src_sintetic = trim($sint_origem); } if ($sint_groupsrc != '' && $sint_origem == '') { $sqlsrc = "select name from peers where peers.group = '{$sint_groupsrc}' "; $sint_src = $db->query($sqlsrc)->fetchAll(PDO::FETCH_ASSOC); $src_sintetic = ''; foreach ($sint_src as $id => $value) { $src_sintetic .= $sint_src[$id]['name'] . ", "; } } if (!empty($sint_dest)) { $this->view->sinteticsrc = $src_sintetic; } $this->renderScript('calls-report/synthetic-report.phtml'); } else { // Analytical Report $paginatorAdapter = new Zend_Paginator_Adapter_Array($row); $paginator = new Zend_Paginator($paginatorAdapter); $paginator->setCurrentPageNumber($this->_request->page); $paginator->setItemCountPerPage(Zend_Registry::get('config')->ambiente->linelimit); $items = $paginator->getCurrentItems(); $this->view->pages = $paginator->getPages(); $this->view->PAGE_URL = "/snep/index.php/calls-report/report/"; $listItems = array(); foreach ($items as $item) { // Status switch ($item['disposition']) { case 'ANSWERED': $item['disposition'] = $this->view->translate('Answered'); break; case 'NO ANSWER': $item['disposition'] = $this->view->translate('Not Answered'); break; case 'FAILED': $item['disposition'] = $this->view->translate('Failed'); break; case 'BUSY': $item['disposition'] = $this->view->translate('Busy'); break; case 'OTHER': $item['disposition'] = $this->view->translate('Others'); break; } // Search for a city or format the telephone type if (strlen($item['src']) > 7 && strlen($item['dst']) < 5) { $item['city'] = $this->telType($item['src']); } else { $item['city'] = $this->telType($item['dst']); } $item['nome'] = $item['tipo'] . " : " . $item['codigo'] . " - " . $item['nome']; if ($defaultNS->view_tarif) { $item['rate'] = $format->fmt_tarifa(array("a" => $item['dst'], "b" => $item['billsec'], "c" => $item['accountcode'], "d" => $item['calldate'], "e" => $item['tipo'])); } $item['src'] = $format->fmt_telefone(array("a" => $item['src'])); $item['dst'] = $format->fmt_telefone(array("a" => $item['dst'])); // Tarrifation $item['billsec'] = $format->fmt_segundos(array("a" => $item['billsec'], "b" => 'hms')); $item['duration'] = $format->fmt_segundos(array("a" => $item['duration'], "b" => 'hms')); if ($defaultNS->view_files) { $filePath = Snep_Manutencao::arquivoExiste($item['calldate'], $item['userfield']); $item['file_name'] = $item['userfield'] . ".wav"; if ($filePath) { $item['file_path'] = $filePath; } else { $item['file_path'] = 'N.D.'; } } array_push($listItems, $item); } $this->view->call_list = $listItems; $this->view->compact_success = $this->view->translate("The files were compressed successfully! Wait for the download start."); $this->renderScript('calls-report/analytical-report.phtml'); } return; }
function fun_paginator($ArrData) { $pager = new Zend_Paginator(new Zend_Paginator_Adapter_Array($ArrData)); $currentPage = isset($_GET['p']) ? (int) htmlentities($_GET['p']) : 1; $pager->setCurrentPageNumber($currentPage); $itemsPerPage = 12; $pager->setItemCountPerPage($itemsPerPage); $pager->setPageRange(10); $pages = $pager->getPages(); $pageLinks = array(); $separator = ' | '; //$this->view->separator=$separator; if ($pages->pageCount > 1) { if ($pages->current == $pages->first) { $pageLinks[] = "<li >First</li>"; $pageLinks[] = "<li >Privious</li>"; } else { $previous = $pages->current - 1; $first = $pages->first; $pageLinks[] = "<li ><a href=\"?p={$first}\">First</a></li>"; $pageLinks[] = "<li><a href=\"?p={$previous}\">Privious</a></li>"; } for ($x = $pages->firstPageInRange; $x <= $pages->lastPageInRange; $x++) { if ($x == $pages->current) { $pageLinks[] = "<li>" . $x . "</li>"; } else { $q = http_build_query(array('p' => $x)); $pageLinks[] = "<li><a href=\"?{$q}\">{$x}</a></li>"; } } if ($pages->current == $pages->last) { $pageLinks[] = "<li>Next</li>"; $pageLinks[] = "<li>Last</li>"; } else { $last = $pages->last; $next = $pages->current + 1; $pageLinks[] = "<li><a href=\"?p={$next}\">Next</a></li>"; $pageLinks[] = "<li><a href=\"?p={$last}\">Last</a></li>"; } } $pagedata['pageLinks'] = $pageLinks; $pagedata['pagingdata'] = $pager->getCurrentItems(); return $pagedata; }
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); } }
/** * @group ZF-4207 */ public function testAcceptsTraversableInstanceFromAdapter() { $paginator = new Zend_Paginator(new Zf4207()); $this->assertType('ArrayObject', $paginator->getCurrentItems()); }