Nasıl bu PHP sayfalama algoritma artırabilir?

0 Cevap php

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> ';
  }
}

0 Cevap