Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. <?php
  2.  
  3. class Paginator {
  4.  
  5. private $_conn;
  6. private $_limit;
  7. private $_page;
  8. private $_query;
  9. private $_total;
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. public function __construct( $conn, $query ) {
  17.  
  18. $this->_conn = $conn;
  19. $this->_query = $query;
  20.  
  21. $rs= $this->_conn->query( $this->_query );
  22. $this->_total = $rs->num_rows;
  23.  
  24. }
  25. public function getData( $limit = 10, $page = 1 ) {
  26.  
  27. $this->_limit = $limit;
  28. $this->_page = $page;
  29.  
  30. if ( $this->_limit == 'all' ) {
  31. $query = $this->_query;
  32. } else {
  33. $query = $this->_query . " LIMIT " . ( ( $this->_page - 1 ) * $this->_limit ) . ", $this->_limit";
  34. }
  35. $rs = $this->_conn->query( $query );
  36.  
  37. while ( $row = $rs->fetch_assoc() ) {
  38. $results[] = $row;
  39. }
  40.  
  41. $result = new stdClass();
  42. $result->page = $this->_page;
  43. $result->limit = $this->_limit;
  44. $result->total = $this->_total;
  45. $result->data = $results;
  46.  
  47. return $result;
  48. }
  49. public function createLinks( $links, $list_class ) {
  50. if ( $this->_limit == 'all' ) {
  51. return '';
  52. }
  53.  
  54. $last = ceil( $this->_total / $this->_limit );
  55.  
  56. $start = ( ( $this->_page - $links ) > 0 ) ? $this->_page - $links : 1;
  57. $end = ( ( $this->_page + $links ) < $last ) ? $this->_page + $links : $last;
  58.  
  59. $html = '<ul class="' . $list_class . '">';
  60.  
  61. $class = ( $this->_page == 1 ) ? "disabled" : "";
  62.  
  63. if(isset($_GET['miestas'])) {
  64. $html .= '<li class="' . $class . '"><a href="?miestas=' . $_GET['miestas'] .'&limit=' . ($this->_limit - 1) . '&page=' . ( $this->_page - 1 ) . '">&laquo;</a></li>';
  65.  
  66. if ( $start > 1 ) {
  67. $html .= '<li><a href="?miestas=' . $_GET['miestas'] . '&limit=' . $this->_limit . '&page=1">1</a></li>';
  68. $html .= '<li class="disabled"><span>...</span></li>';
  69. }
  70.  
  71. for ( $i = $start ; $i <= $end; $i++ ) {
  72. $class = ( $this->_page == $i ) ? "active" : "";
  73. $html .= '<li class="' . $class . '"><a href="?miestas=' . $_GET['miestas'] .'&limit=' . $i . '&page=' . $this->_limit . '">' . $i . '</a></li>';
  74. }
  75.  
  76. if ( $end < $last ) {
  77. $html .= '<li class="disabled"><span>...</span></li>';
  78. $html .= '<li><a href="?miestas=' . $_GET['miestas'] .'&limit=' . $last . '&page=' . $this->_limit . '">' . $i . '</a></li>';
  79. }
  80.  
  81. $class = ( $this->_page == $last ) ? "disabled" : "";
  82. $html .= '<li class="' . $class . '"><a href="?miestas=' . $_GET['miestas'] .'&limit=' . ($this->_limit + 1) . '&page=' . ( $this->_page + 1 ) . '">&raquo;</a></li>';
  83.  
  84. $html .= '</ul>';
  85. }
  86. else {
  87.  
  88. $html .= '<li class="' . $class . '"><a href="?paieska=' . $_GET['paieska'] .'&limit=' . ($this->_limit - 1) . '&page=' . ( $this->_page - 1 ) . '">&laquo;</a></li>';
  89.  
  90. if ( $start > 1 ) {
  91. $html .= '<li><a href="?paieska=' . $_GET['paieska'] . '&limit=' . $this->_limit . '&page=1">1</a></li>';
  92. $html .= '<li class="disabled"><span>...</span></li>';
  93. }
  94.  
  95. for ( $i = $start ; $i <= $end; $i++ ) {
  96. $class = ( $this->_page == $i ) ? "active" : "";
  97. $html .= '<li class="' . $class . '"><a href="?paieska=' . $_GET['paieska'] .'&limit=' . $i . '&page=' . $this->_limit . '">' . $i . '</a></li>';
  98. }
  99.  
  100. if ( $end < $last ) {
  101. $html .= '<li class="disabled"><span>...</span></li>';
  102. $html .= '<li><a href="?paieska=' . $_GET['paieska'] .'&limit=' . $last . '&page=' . $this->_total . '">' . $this->_total. '</a></li>';
  103. }
  104.  
  105. $class = ( $this->_page == $last ) ? "disabled" : "";
  106. $html .= '<li class="' . $class . '"><a href="?paieska=' . $_GET['paieska'] .'&limit=' . ($this->_limit + 1) . '&page=' . ( $this->_page + 1 ) . '">&raquo;</a></li>';
  107.  
  108. $html .= '</ul>';
  109. }
  110.  
  111. return $html;
  112. }
  113.  
  114.  
  115.  
  116.  
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement