Advertisement
ans4175

pagination_func

Jan 9th, 2014
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.27 KB | None | 0 0
  1. function paginasi($query,$ulink,$limit=5){
  2.     if (isset($_GET['pg'])){
  3.         $page=$_GET['pg'];
  4.     }else{
  5.         $page=1;
  6.     }
  7.     $db = new db();
  8.     $start=($page-1)*$limit;
  9.     $qres = $db->query($query." LIMIT $start,$limit");  //--->isinya
  10.     $res = $db->query($query);  //--->isinya
  11.     $pagination = "";
  12.     $totpost=$db->rowCount();
  13.     //echo $totpost;
  14.     if ($totpost>0){                                           
  15.         $adjacents = 2; //mainin hide-hide
  16.         $totpage=($totpost/$limit);
  17.         if ($totpost<=$limit) $totpage=1;
  18.        
  19.         //$page=1;  //page now
  20.         $prev = $page - 1;                          //previous page is page - 1
  21.         $next = $page + 1;                          //next page is page + 1
  22.         $lastpage = ceil($totpost/$limit);      //lastpage is = total pages / items per page, rounded up.
  23.         $lpm1 = $lastpage - 1;                      //last page minus 1
  24.        
  25.         $uprev = $ulink."&pg=".$prev;
  26.         $unext = $ulink."&pg=".$next;
  27.         $ulast = $ulink."&pg=".$lastpage;
  28.         $ulm1 = $ulink."&pg=".$lpm1;
  29.        
  30.         $pagination = "<div class='row' id='konten-patas'><div class=\"large-8 small-6 columns\">\n";
  31.             if($lastpage > 1)   //cek lebih dari satu halaman
  32.             {  
  33.                 $pagination .= "<ul class=\"pagination\">\n";
  34.                 //previous button
  35.                 if ($page > 1)
  36.                     $pagination.= "<li><a href=\"$uprev\">&laquo;</a></li>\n";
  37.                 else
  38.                     $pagination.= "<li class=\"arrow unavailable\"><a href=\"#\">&laquo;</a></li>\n";  
  39.                
  40.                 //pages
  41.                 if ($lastpage <= 3 + ($adjacents * 2))  //not enough pages to bother breaking it up
  42.                 {  
  43.                     for ($counter = 1; $counter <= $lastpage; $counter++)
  44.                     {
  45.                         if ($counter == $page)
  46.                             $pagination.= "<li class=\"current\"><a href=\"#\">$counter</a></li>\n";
  47.                         else{
  48.                             $ucount = $ulink."&pg=".$counter;
  49.                             $pagination.= "<li><a href=\"$ucount\">$counter</a></li>\n";
  50.                         }
  51.                     }
  52.                 }
  53.                 else if($lastpage > 3 + ($adjacents * 2))   //enough pages to hide some
  54.                 {
  55.                     //close to beginning; only hide later pages
  56.                     if($page < 3 + ($adjacents * 2))       
  57.                     {
  58.                         for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
  59.                         {
  60.                             if ($counter == $page)
  61.                                 $pagination.= "<li class=\"current\"><a href=\"#\">$counter</a></li>\n";
  62.                             else{
  63.                                 $ucount = $ulink."&pg=".$counter;
  64.                                 $pagination.= "<li><a href=\"$ucount\">$counter</a></li>\n";
  65.                             }
  66.                         }
  67.                         $pagination.= "...";
  68.                         $pagination.= "<li><a href=\"$ulm1\">$lpm1</a></li>\n";
  69.                         $pagination.= "<li><a href=\"$ulast\">$lastpage</a></li>\n";
  70.                     }
  71.                     //in middle; hide some front and some back
  72.                     else if($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
  73.                     {
  74.                         $u1 = $ulink."&pg=1";
  75.                         $u2 = $ulink."&pg=2";
  76.                         $pagination.= "<li><a href=\"$u1\">1</a></li>\n";
  77.                         $pagination.= "<li><a href=\"$u2\">2</a</a></li>\n";
  78.                         $pagination.= "...";
  79.                         for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
  80.                         {
  81.                             if ($counter == $page)
  82.                                 $pagination.= "<li class=\"current\"><a href=\"#\">$counter</a></li>\n";
  83.                             else{
  84.                                 $ucount = $ulink."&pg=".$counter;
  85.                                 $pagination.= "<li><a href=\"$ucount\">$counter</a></li>\n";
  86.                             }
  87.                         }
  88.                         $pagination.= "<li>...</li>";
  89.                         $pagination.= "<li><a href=\"$ulm1\">$lpm1</a></li>\n";
  90.                         $pagination.= "<li><a href=\"$ulast\">$lastpage</a></li>\n";       
  91.                     }
  92.                     //close to end; only hide early pages
  93.                     else
  94.                     {
  95.                         $u1 = $ulink."&pg=1";
  96.                         $u2 = $ulink."&pg=2";
  97.                         $pagination.= "<li><a href=\"$u1\">1</a></li>\n";
  98.                         $pagination.= "<li><a href=\"$u2\">2</a</a></li>\n";
  99.                         $pagination.= "...";
  100.                         for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
  101.                         {
  102.                             if ($counter == $page)
  103.                                 $pagination.= "<li class=\"current\"><a href=\"#\">$counter</a></li>\n";
  104.                             else{
  105.                                 $ucount = $ulink."&pg=".$counter;
  106.                                 $pagination.= "<li><a href=\"$ucount\">$counter</a></li>\n";   
  107.                             }              
  108.                         }
  109.                     }
  110.                 }
  111.                
  112.                 //next button
  113.                 if ($page < $counter - 1)
  114.                     $pagination.= "<li><a href=\"$unext\">&raquo;</a></li>\n";
  115.                 else
  116.                     $pagination.= "<li class=\"arrow unavailable\"><a href=\"#\">&raquo;</a></li>\n";
  117.                 $pagination.= "</ul>\n";       
  118.             }
  119.             //echo $pagination;
  120.         $pagination .= "</div></div>\n";
  121.     }
  122.     $result['sql'] = $qres;
  123.     $result['page'] = $pagination;
  124.     return $result;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement