pagination.blade.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. @if($paginator->count() > 0)
  2. @php
  3. $block = ceil($paginator->currentPage() / ($paginator->onEachSide ?? 10));
  4. $startPage = ((($block - 1) * $paginator->onEachSide) + 1);
  5. $lastPage = $paginator->lastPage();
  6. $prevBlockPage = (($block - 1) * $paginator->onEachSide);
  7. $nextBlockPage = (($block + 1) * $paginator->onEachSide - ($paginator->onEachSide - 1));
  8. @endphp
  9. <ul class="pagination">
  10. {{-- Previous Page Link --}}
  11. @if ($paginator->onFirstPage() || $prevBlockPage <= 0)
  12. <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
  13. <span class="page-link" aria-hidden="true">&lsaquo;</span>
  14. </li>
  15. @else
  16. <li class="page-item">
  17. <a class="page-link" href="{{ $paginator->url($prevBlockPage) }}" rel="prev" aria-label="@lang('pagination.previous')">&lsaquo;</a>
  18. </li>
  19. @endif
  20. {{-- Pagination Elements --}}
  21. @foreach ($elements as $element)
  22. {{-- "Three Dots" Separator --}}
  23. @if (is_string($element))
  24. <li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
  25. @endif
  26. {{-- Array Of Links --}}
  27. @if (is_array($element))
  28. @foreach ($element as $page => $url)
  29. @if($page > $prevBlockPage && $page < $nextBlockPage)
  30. @if ($page == $paginator->currentPage())
  31. <li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
  32. @else
  33. <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
  34. @endif
  35. @endif
  36. @endforeach
  37. @endif
  38. @endforeach
  39. {{-- Next Page Link --}}
  40. @if ($paginator->hasMorePages() && $paginator->lastPage() > $nextBlockPage)
  41. <li class="page-item">
  42. <a class="page-link" href="{{ $paginator->url($nextBlockPage) }}" rel="next" aria-label="@lang('pagination.next')">&rsaquo;</a>
  43. </li>
  44. @else
  45. <li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
  46. <span class="page-link" aria-hidden="true">&rsaquo;</span>
  47. </li>
  48. @endif
  49. </ul>
  50. @endif