I'm working on a pagination algorithm in PHP. Ben iyileştirilmesi için oda ihtiyacı olduğunu tahmin edebilirsiniz, bu yüzden, bir UI / UX açısından, kod kendisi temizlemeye onu geliştirmek için nasıl bazı düşünceler gibi, ya da olabilir başka bir şey istiyorum düşünüyorum.
The algorithm should output pagination that looks like this:
1 2 3 ... 6 7 8 ... 97 98 99
ya da bu:
1 2 3 4 5 ... 6 7 8 9 10
ya da bu:
1 2 3
Here's my code:
<?php
if(!is_null($_GET['page'])) {
$currentPage = $_GET['page'];
} else {
$currentPage = 1;
}
if($pages != null) {
echo 'Page: ';
}
// Less than 10 pages
if($pages <= 10) {
for($page = 1; $page <= $pages; $page++) {
echo '<a href="?page=' . $page . '">' . $page . '</a> ';
}
// Greater than 10 pages, and we're somewhere in the middle of them
} elseif(($pages > 10) && ($currentPage > 4) && ($currentPage < $pages - 3)) {
for($page = 1; $page <= 3; $page++) {
echo '<a href="?page=' . $page . '">' . $page . '</a> ';
}
echo '... ';
for($page = $currentPage - 1; $page <= $currentPage + 1; $page++) {
echo '<a href="?page=' . $page . '">' . $page . '</a> ';
}
echo '... ';
for($page = $pages - 2; $page <= $pages; $page++) {
echo '<a href="?page=' . $page . '">' . $page . '</a> ';
}
// Greater than 10 pages, and we're towards the end of the pages
} else {
for($page = 1; $page <= 5; $page++) {
echo '<a href="?page=' . $page . '">' . $page . '</a> ';
}
echo '... ';
for($page = $pages - 5; $page <= $pages; $page++) {
echo '<a href="?page=' . $page . '">' . $page . '</a> ';
}
}