Advertisement
Guest User

Untitled

a guest
Aug 31st, 2015
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. ```php
  2. // пагинация для страницы
  3. protected function pagination($setting)
  4. {
  5. //$setting = array('count_page'=>100, 'this_page'=>1, 'item_link'=>7);
  6. $page_this = $setting['this_page']; // текущая страница
  7. $page_count = $setting['count_page']; // максимальное кол-во страниц
  8. $item_count = $setting['item_link']; // кол-во элементов на страницу, нечетное
  9. $item_step = ceil(($item_count-1)/2); // (шаг) кол-во элементов справа и слева от текущего
  10. $page_result = array(); // массив для возврата результата
  11. // если страниц не одна
  12. if ($page_count != 1){
  13. // текущая в первом шаге
  14. if ($page_this < $item_step+1) {
  15. // начиная с первого до количества элементов
  16. $page_near = range(1,$item_count);
  17. }
  18. // текущая в последнем шаге
  19. elseif ($page_this > $page_count-$item_step) {
  20. // с последней минус количество элементов, до конца
  21. $page_near = range($page_count-$item_count+1, $page_count);
  22. }
  23. // текущая в серединных элементах
  24. else {
  25. // элементы равномерно от текущей справа и слева на величину шага
  26. $page_near = range($page_this-$item_step, $page_this+$item_step);
  27. }
  28. // заменяем первый и последний элементы на первую и последнюю страницы
  29. $page_near[0] = 1;
  30. $page_near[$item_count-1] = $page_count;
  31. }
  32. // если страниц меньше чем элементов, то выводим все страницы
  33. if ($page_count <= $item_count){
  34. $page_near = range(1, $page_count);
  35. }
  36. // если страниц всего одна, то возвращаем пустоту
  37. if ($page_count == 1) {
  38. return $page_result = array();
  39. }
  40. // проходимся по всем элементам, чтобы сформировать результат и пометить элементы в выводе
  41. foreach($page_near as $page) {
  42. $page_result[] = array('page'=>$page, 'this_page'=> ($page_this == $page) ? 1 : 0);
  43. }
  44.  
  45. return $page_result;
  46. }
  47. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement