Пример #1
0
 /**
  * Paginates the Elasticsearch results.
  *
  * @param int $perPage
  * @return mixed
  */
 public function paginate($perPage = 15)
 {
     $page = Paginator::resolveCurrentPage('page');
     $paginator = new LengthAwarePaginator($this->items, $this->total(), $perPage, $page);
     $start = ($paginator->currentPage() - 1) * $perPage;
     $sliced = array_slice($this->items, $start, $perPage);
     return new LengthAwarePaginator($sliced, $this->total(), $perPage, $page, ['path' => Paginator::resolveCurrentPath(), 'pageName' => 'page']);
 }
Пример #2
0
 public function afterLoad()
 {
     $linkedWidget = $this->widgetManager->getWidgetById($this->linked_widget_id);
     $paginator = null;
     if (!is_null($linkedWidget) and $linkedWidget instanceof WidgetPaginator) {
         $paginator = new LengthAwarePaginator([], $linkedWidget->getTotalDocuments(), $linkedWidget->list_size);
         $paginator->setPageName($this->query_key);
         $paginator->setPath(Request::path());
         $linkedWidget->list_offset = (int) (($paginator->currentPage() - 1) * $paginator->perPage());
     }
     $this->paginator = $paginator;
 }
Пример #3
0
 public function pagination(LengthAwarePaginator $paginator)
 {
     $numStartedOnPage = $paginator->perPage() * ($paginator->currentPage() - 1);
     $numEndedOnPage = $numStartedOnPage + $paginator->perPage();
     if ($numStartedOnPage == 0) {
         $numStartedOnPage = 1;
     } elseif ($numStartedOnPage > 0) {
         $numStartedOnPage += 1;
     }
     if ($numEndedOnPage > $paginator->total()) {
         $numEndedOnPage = $paginator->total();
     }
     return '<div class="row">' . '<div class="col-sm-6">Showing <b>' . number_format($numStartedOnPage) . ' to ' . number_format($numEndedOnPage) . '</b> of ' . number_format($paginator->total()) . ' entries</div>' . '<div class="col-sm-6 text-right">' . (new \BibleBowl\Presentation\Pagination($paginator))->render() . '</div>' . '</div>';
 }
Пример #4
0
 /**
  * @param LengthAwarePaginator|LengthAwarePaginatorContract $paginator
  * @param string                                            $dataKey
  *
  * @return array
  */
 protected function paginatorToArray(LengthAwarePaginator $paginator, $dataKey = 'items')
 {
     return ['total' => $paginator->total(), 'perPage' => $paginator->perPage(), 'currentPage' => $paginator->currentPage(), 'lastPage' => $paginator->lastPage(), 'nextPageUrl' => $paginator->nextPageUrl(), 'prevPageUrl' => $paginator->previousPageUrl(), 'from' => $paginator->firstItem(), 'to' => $paginator->lastItem(), $dataKey => $paginator->items()];
 }
Пример #5
0
 protected function respondWithPagination(LengthAwarePaginator $items, $data)
 {
     $data = array_merge($data, ['paginator' => ['total_count' => $items->total(), 'total_pages' => ceil($items->total() / $items->perPage()), 'current_page' => $items->currentPage(), 'limit' => $items->perPage()]]);
     return $this->respond($data);
 }
 /**
  * @param LengthAwarePaginator $paged
  *
  * @return PaginatedRepresentation
  */
 public function formateHatoeasPaged(LengthAwarePaginator $paged)
 {
     $request = \App::make('request');
     $params = array_merge($request->route()[2], $request->all());
     return new PaginatedRepresentation(new CollectionRepresentation($paged->getCollection(), null, $request->path()), $request->route()[1]['as'], $params, $paged->currentPage(), $paged->perPage(), $paged->lastPage(), 'page', 'per_page', true, $paged->total());
 }
Пример #7
0
 public function pager()
 {
     $page = $this->paginator->currentPage();
     $total = max(1, ceil($this->paginator->total() / $this->paginator->perPage()));
     return trans('support::pagination.pager', compact('page', 'total'));
 }
Пример #8
0
    $useLengthAware = true;
    // Paginator class example
    if (!$useLengthAware) {
        $paginatorItems = array_slice($items, $offset);
        $results = new Paginator($paginatorItems, $perPage, $currentPage, $options);
    }
    // End of Paginator example
    // LengthAwarePaginator class example
    if ($useLengthAware) {
        $lengthAwarePaginatorItems = array_slice($items, $offset, $perPage);
        $results = new LengthAwarePaginator($lengthAwarePaginatorItems, $total, $perPage, $currentPage, $options);
    }
    // End of LengthAwarePaginator example
    // Display a paginated table of our array
    echo '<h1>I love hashes</h1>';
    echo '<table>';
    foreach ($results as $result) {
        echo "\n        <tr>\n            <td>{$result['id']}</td>\n            <td>{$result['hash']}</td>\n        </tr>";
    }
    echo '<table>' . "\n";
    echo $results->appends($_GET)->render();
    echo 'Current Page: ' . $results->currentPage();
    echo '<br>Items Per Page: ' . $results->perPage();
    // The following methods are only available when using the LengthAwarePaginator instance
    if ($useLengthAware) {
        echo '<br>From ' . $results->firstItem() . ' to ' . $results->lastItem();
        echo '<br>Total Items: ' . $results->total();
        echo '<br>Last Page: ' . $results->lastPage();
    }
});
$app->run();
 /**
  * Is the current page the first page?
  *
  * @param \Illuminate\Pagination\LengthAwarePaginator $paginator
  *
  * @return bool
  */
 protected function isFirstPage(LengthAwarePaginator $paginator)
 {
     return $paginator->currentPage() === 1;
 }
Пример #10
0
 /**
  * Return pagination links as array
  * @param LengthAwarePaginator $paginator
  * @return array
  */
 protected function getPaginationLinks($paginator)
 {
     $links = [];
     $links['self'] = urldecode($paginator->url($paginator->currentPage()));
     $links['first'] = urldecode($paginator->url(1));
     $links['last'] = urldecode($paginator->url($paginator->lastPage()));
     $links['prev'] = urldecode($paginator->url($paginator->currentPage() - 1));
     if ($links['prev'] === $links['self'] || $links['prev'] === '') {
         $links['prev'] = null;
     }
     $links['next'] = urldecode($paginator->nextPageUrl());
     if ($links['next'] === $links['self'] || $links['next'] === '') {
         $links['next'] = null;
     }
     return $links;
 }
Пример #11
0
 public static function wrapPager(LengthAwarePaginator $pager)
 {
     $collection = static::wrapCollection($pager->getCollection());
     return new LengthAwarePaginator($collection, $pager->total(), $pager->perPage(), $pager->currentPage());
 }
Пример #12
0
 /**
  * @param LengthAwarePaginator $paginatorData
  * @param           $data
  *
  * @return mixed
  */
 public function respondWithPagination(LengthAwarePaginator $paginatorData, $data)
 {
     $data = array_merge($data, ['paginator' => ['total_count' => $paginatorData->total(), 'total_pages' => ceil($paginatorData->total() / $paginatorData->perPage()), 'current_page' => $paginatorData->currentPage(), 'limit' => $paginatorData->count(), 'next_page_url' => $paginatorData->nextPageUrl()]]);
     return $this->respond($data);
 }
Пример #13
0
 public function paginate(LengthAwarePaginator $paginator)
 {
     return ["count" => $paginator->count(), "current_page" => $paginator->currentPage(), "last_page" => $paginator->lastPage(), "per_page" => $paginator->perPage(), "total" => $paginator->total()];
 }
Пример #14
0
 /**
  * @param $products
  * @return \Illuminate\Http\JsonResponse
  */
 public function respondWithPagination(Paginator $products, $data)
 {
     $data = array_merge($data, ['paginator' => ['total_count' => $products->total(), 'total_pages' => ceil($products->total() / $products->perPage()), 'current_page' => $products->currentPage(), 'limit' => $products->perPage()]]);
     return $this->respond($data);
 }
 /**
  * Is this current page in range?
  *
  * @param \Illuminate\Pagination\LengthAwarePaginator $paginator
  *
  * @return bool
  */
 protected function isPageInRange(LengthAwarePaginator $paginator)
 {
     return $paginator->currentPage() <= ceil($paginator->lastItem() / $paginator->perPage());
 }
Пример #16
0
 /**
  * @param LengthAwarePaginator $paginated_list
  * @return string
  */
 public function tableNavStatus(LengthAwarePaginator $paginated_list)
 {
     return trans('global.table_list.results.status', ['start' => $paginated_list->perPage() * ($paginated_list->currentPage() - 1) + 1, 'stop' => $paginated_list->count() + ($paginated_list->currentPage() - 1) * $paginated_list->perPage(), 'total' => $paginated_list->total()]);
 }