Skip to content

Instantly share code, notes, and snippets.

@cvaize
Last active October 13, 2022 19:06
Show Gist options
  • Save cvaize/f12c0d5bcd8eb09bd7fc3e7f8fb4c6c3 to your computer and use it in GitHub Desktop.
Save cvaize/f12c0d5bcd8eb09bd7fc3e7f8fb4c6c3 to your computer and use it in GitHub Desktop.
Laravel pagination on lg( @media( >= 480px) ) screens onEachSide(5) and on xs( @media( < 480px) ) screens onEachSide(1)
@if ($paginator->hasPages())
<?php
if (sizeof($elements[0]) === 2) {
unset($elements[0][array_key_last($elements[0])]);
}
if (sizeof($elements[4]) === 2) {
unset($elements[4][array_key_first($elements[4])]);
}
?>
<ul class="pagination d-none d-xs-flex" role="navigation">
{{-- Pagination Elements --}}
@foreach ($elements as $keyElement => $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
@else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
</ul>
<?php
$currentPage = $paginator->currentPage();
$lastPage = $paginator->lastPage();
if ($currentPage < 4) {
if (isset($elements[0][5])) {
unset($elements[0][5]);
}
if (isset($elements[0][6])) {
unset($elements[0][6]);
}
if (isset($elements[0][7])) {
unset($elements[0][7]);
}
if (isset($elements[0][8])) {
unset($elements[0][8]);
}
} else if (($lastPage - $currentPage + 1) < 4) {
foreach ($elements[4] as $key=>$element) {
if($key < ($lastPage - 3))
{
unset($elements[4][$key]);
}
}
} else if (sizeof($elements[0]) > 1){
$elements = [
[1=>$elements[0][1]],
$elements[3],
[
$currentPage - 1 => $elements[0][$currentPage - 1],
$currentPage => $elements[0][$currentPage],
$currentPage + 1 => $elements[0][$currentPage + 1],
],
$elements[3],
$elements[4],
];
} else if (isset($elements[2]) && sizeof($elements[2]) > 3){
foreach ($elements[2] as $key=>$element) {
if($key < ($currentPage - 1))
{
unset($elements[2][$key]);
}
if($key > ($currentPage + 1))
{
unset($elements[2][$key]);
}
}
} else if (sizeof($elements[4]) > 1){
$lastElement = array_key_last($elements[4]);
$elements = [
$elements[0],
$elements[3],
[
$currentPage - 1 => $elements[4][$currentPage - 1],
$currentPage => $elements[4][$currentPage],
$currentPage + 1 => $elements[4][$currentPage + 1],
],
$elements[3],
[$lastElement => $elements[4][$lastElement]],
];
}
?>
<ul class="pagination d-flex d-xs-none" role="navigation">
{{-- Pagination Elements --}}
@foreach ($elements as $keyElement => $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<li class="page-item disabled" aria-disabled="true"><span class="page-link">{{ $element }}</span></li>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
@else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
</ul>
@endif
@cvaize
Copy link
Author

cvaize commented Jun 17, 2019

If it came in handy put a star =)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment