/** * * @param string $Termos * @param array $Places * @param int $CurrentPage * @param int $PorPagina * @return \Pagination */ public function ListaPagination($Termos = null, array $Places = null, $CurrentPage = 1, $PorPagina = 20) { $p = new Pagination(); $p->_Termos = $Termos; $p->_Places = $Places; $p->setCount($this->Lista($Termos, $Places, true))->setPorPagina($PorPagina)->setCurrentPage($CurrentPage)->setRegistros($this->Lista("{$Termos} {$p->getLimitOffset()}", $Places, false), false); return $p; }
public function getMany() { $req = $this->bcms->request(); $items = \ORM::for_table($this->tableName); if ($req->get('group')) { $group = $req->get('group'); $items = $items->where_in('group', $group); $this->bcms->view()->appendData(array('currentGroup' => $group)); } // Search $query = $req->get('query'); if ($query) { $items = $items->where_like('email', "%{$query}%"); $this->bcms->view()->appendData(array('query' => $query)); } // Ordering if ($req->get('order_by')) { $orderBy = $req->get('order_by'); $items = $items->order_by_asc($orderBy); $this->bcms->view()->appendData(array('order_by' => $orderBy)); } else { $items = $items->order_by_desc('date_created'); } $items = $items->left_outer_join('b_users_profiles', array($this->tableName . '.id', '=', 'b_users_profiles.user_id')); //Pagination $pagination = new Pagination($this->bcms); $pagination->setLimit($this->perPage); $pagination->setCount($items->count()); $items = $items->limit($this->perPage)->offset($pagination->start); $items = $items->find_array(); if (!$items) { return false; } return $items; }
public function search($query) { $page = array('title' => $this->bcms->translate('Search query') . ' "' . $query . '"'); $query = trim($query); if (strlen($query) < 3) { $this->bcms->render('pages/search.twig', array('page' => $page, 'products' => null)); return false; } $items = \ORM::for_table($this->tableName)->select_many('id', 'name', 'photo', 'url', 'price')->where_like('name', '%' . $query . '%'); //Pagination $pagination = new Pagination($this->bcms); $pagination->setCount($items->count()); $items = $items->limit($pagination->limit)->offset($pagination->start)->find_array(); for ($i = 0; $i < count($items); $i++) { $items[$i]['url'] = $this->startUrl . $items[$i]['url']; } if ($this->bcms->request()->isAjax()) { $suggestions = array(); foreach ($items as $item) { $suggestions[] = $item['name']; } $response = array('query' => $query, 'suggestions' => $suggestions); $responseJSON = json_encode($response); exit($responseJSON); } else { if (1 === count($items)) { $this->bcms->redirect($items[0]['url']); } $this->bcms->render('pages/search.twig', array('page' => $page, 'products' => $items)); } return $items; }
<?php include "./pagination.php"; $iLimit = 10; $iPage = isset($_GET['page']) ? $_GET['page'] : 1; $iStart = $iLimit * $iPage - $iLimit; $oPaginate = new Pagination(); $aNames = $oPaginate->getNames($iStart, $iLimit); $oPaginate->setCount($aNames['count']); $oPaginate->setRange(3); $oPaginate->setLimit($iLimit); $oPaginate->setCurrentPage($iPage); if ($aNames['count'] > 0) { foreach ($aNames['names'] as $r) { echo $r['name'] . '<br>'; } } echo $oPaginate->create();