Example #1
0
 /**
  * 
  * @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;
 }
Example #2
0
 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;
 }
Example #3
0
 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;
 }
Example #4
0
<?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();