Exemplo n.º 1
1
 /**
  * Paginates the Elasticsearch results.
  *
  * @param int $perPage
  * @return mixed
  */
 public function paginate($perPage = 15)
 {
     $paginator = new Paginator($this->items, $perPage);
     $start = ($paginator->currentPage() - 1) * $perPage;
     $sliced = array_slice($this->items, $start, $perPage);
     return new Paginator($sliced, $perPage);
 }
Exemplo n.º 2
0
 /**
  * Render the given paginator.
  *
  * @return string
  */
 public function render()
 {
     $render = "";
     if ($this->paginator->currentPage() > 1) {
         $render .= "<div class='pagination pagination-previous'><a href='" . $this->paginator->previousPageUrl() . "'> &lt;&lt; Page précédente </a></div>";
     }
     if ($this->paginator->hasMorePages()) {
         $render .= "<div class='pagination pagination-next'><a href='" . $this->paginator->nextPageUrl() . "'> Page suivante &gt;&gt; </a></div>";
     }
     return "<div class='pagination-container'>" . $render . "</div>";
 }
Exemplo n.º 3
0
 /**
  * @param Tag $tag
  * @param Request $request
  * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|Paginator
  * @throws \Exception
  */
 public function index(Tag $tag, Request $request)
 {
     $value = $request->get('value');
     $locale = $request->get('locale');
     $owner = $this->owner($request);
     $tags = $owner->tags->lists('id');
     //why o why did we paginate this?
     $tags = $tag->with(['translations'])->where(function ($q) use($tags) {
         if (!empty($tags)) {
             $q->whereNotIn('id', $tags);
         }
     })->whereHas('translations', function ($q) use($value, $locale) {
         $q->where('locale', $locale);
         $q->where('name', 'like', '%' . $value . '%');
     })->paginate(10);
     $sorted = new Collection($tags->items());
     $sorted = $sorted->sortBy(function ($tag) use($locale) {
         return $tag->translate($locale)->name;
     });
     $tags = new Paginator($sorted, $tags->perPage(), $tags->currentPage());
     return $tags;
 }
Exemplo n.º 4
0
 /**
  * @param Skill $skill
  * @param Request $request
  * @param AccountManager $manager
  * @param Guard $guard
  * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|Paginator
  */
 public function index(Skill $skill, Request $request, AccountManager $manager, Guard $guard)
 {
     $value = $request->get('value');
     $locale = $request->get('locale');
     $user = $guard->user();
     $skills = $user->skills->lists('id')->toArray();
     //why o why did we paginate this?
     $skills = $skill->with(['translations'])->where(function ($q) use($skills) {
         if (!empty($skills)) {
             $q->whereNotIn('id', $skills);
         }
     })->whereHas('translations', function ($q) use($value, $locale) {
         $q->where('locale', $locale);
         $q->where('name', 'like', '%' . $value . '%');
     })->paginate(10);
     $sorted = new Collection($skills->items());
     $sorted = $sorted->sortBy(function ($skill) use($locale) {
         return $skill->translate($locale)->name;
     });
     $skills = new Paginator($sorted, $skills->perPage(), $skills->currentPage());
     return $skills;
 }
 /**
  * Get the current page.
  *
  * @return int
  */
 public function getCurrentPage()
 {
     return $this->paginator->currentPage();
 }
Exemplo n.º 6
0
 /**
  * @param Paginator $paginatorData
  * @param $data
  * @return mixed
  */
 public function respondWithPagination($paginatorData, $data)
 {
     $data = array_merge($data, ['paginator' => ['total_count' => count($paginatorData->items()), 'total_pages' => ceil(count($paginatorData->items()) / $paginatorData->perPage()), 'current_page' => $paginatorData->currentPage(), 'limit' => $paginatorData->count(), 'next_page_url' => $paginatorData->nextPageUrl()]]);
     return $this->respond($data);
 }