返回列表 回复 发帖

[转帖]分页类代码

作者:Arvan
  1. /**********
  2. | +---------------------------------------------------
  3. |    CLASS NAME: PageBar
  4. | +---------------------------------------------------
  5. |    Author:    Arvan [E-mail:Arvan@5n9.com QQ:8817776]
  6. |    Create date:    2003-7-17
  7. |    Note:
  8. |        Do for pagination
  9. | +---------------------------------------------------
  10. |    Warning: no...
  11. | +---------------------------------------------------
  12. **********/
  13. class PageBar
  14. {
  15.         var $total;        
  16.         var $onepage;
  17.         var $num;                        
  18.         var $pagecount;
  19.         var $total_page;
  20.         var $offset;        
  21.         var $linkhead;        
  22.    
  23.         function PageBar($total, $onepage, $form_vars='')
  24.         {
  25.                 $pagecount = $_GET['pagecount'];
  26.                 $this->total      = $total;
  27.                 $this->onepage    = $onepage;
  28.                 $this->total_page = ceil($total/$onepage);
  29.                 if (empty($pagecount))
  30.                 {
  31.                         $this->pagecount = 1;
  32.                         $this->offset         = 0;        
  33.                 }
  34.                 else
  35.                 {
  36.                         $this->pagecount = $pagecount;
  37.                         $this->offset    = ($pagecount-1)*$onepage;
  38.                 }
  39.                
  40.                 if (!empty($form_vars))
  41.                 {
  42.                         
  43.                         $vars = explode("|", $form_vars);
  44.                         $chk = $vars[0];
  45.                         $chk_value = $_POST["$chk"];
  46.                         if (empty($chk_value))
  47.                         {
  48.                                 $formlink = "";
  49.                         }
  50.                         else
  51.                         {
  52.                                 for ($i=0; $i<sizeof($vars); $i++)
  53.                                 {
  54.                                         $var     = $vars[$i];
  55.                                         $value   = $_POST["$var"];
  56.                                         $addchar = $var."=".$value;
  57.                                        
  58.                                         $formlink = $formlink.$addchar."&";
  59.                                 }
  60.                         }
  61.                 }
  62.                 else
  63.                 {
  64.                         $formlink = "";
  65.                 }
  66.                 $linkarr = explode("pagecount=", $_SERVER['QUERY_STRING']);
  67.                 $linkft  = $linkarr[0];
  68.                 if (empty($linkft))
  69.                 {
  70.                         $this->linkhead = $_SERVER['PHP_SELF']."?".$formlink;
  71.                 }
  72.                 else
  73.                 {
  74.                         $linkft    = (substr($linkft, -1)=="&")?$linkft:$linkft."&";
  75.                         $this->linkhead = $_SERVER['PHP_SELF']."?".$linkft.$formlink;
  76.                 }
  77.         }
  78.         #End function PageBar();
  79.         function offset()
  80.         {
  81.                 return $this->offset;
  82.         }
  83.         #End function offset();
  84.         function pre_page($char='')
  85.         {
  86.                 $linkhead  = $this->linkhead;
  87.                 $pagecount = $this->pagecount;
  88.                 if (empty($char))
  89.                 {
  90.                         $char = "[<]";
  91.                 }
  92.                 if ($pagecount>1)
  93.                 {
  94.                         $pre_page = $pagecount - 1;
  95.                         return "<a href=\"$linkhead"."pagecount=$pre_page\">$char</a>";
  96.                 }
  97.                 else
  98.                 {
  99.                         return '';
  100.                 }
  101.         }
  102.         #End function pre_page();
  103.         function next_page($char='')
  104.         {
  105.                 $linkhead   = $this->linkhead;
  106.                 $total_page = $this->total_page;
  107.                 $pagecount  = $this->pagecount;
  108.                 if (empty($char))
  109.                 {
  110.                         $char = "[>]";
  111.                 }
  112.                 if ($pagecount<$total_page)
  113.                 {
  114.                         $next_page = $pagecount + 1;
  115.                         return "<a href=\"$linkhead"."pagecount=$next_page\">$char</a>";
  116.                 }
  117.                 else
  118.                 {
  119.                         return '';
  120.                 }
  121.         }
  122.         #End function next_page();
  123.         function num_bar($num='', $color='', $left='', $right='')
  124.         {
  125.                 $num       = (empty($num))?10:$num;
  126.                 $this->num = $num;
  127.                 $mid       = floor($num/2);
  128.                 $last      = $num - 1;
  129.                 $pagecount = $this->pagecount;
  130.                 $totalpage = $this->total_page;
  131.                 $linkhead  = $this->linkhead;
  132.                 $left      = (empty($left))?"[":$left;
  133.                 $right     = (empty($right))?"]":$right;
  134.                 $color     = (empty($color))?"#ff0000":$color;
  135.                 $minpage   = (($pagecount-$mid)<1)?1:($pagecount-$mid);
  136.                 $maxpage   = $minpage + $last;
  137.                 if ($maxpage>$totalpage)
  138.                 {
  139.                         $maxpage = $totalpage;
  140.                         $minpage = $maxpage - $last;
  141.                         $minpage = ($minpage<1)?1:$minpage;
  142.                 }
  143.                 for ($i=$minpage; $i<=$maxpage; $i++)
  144.                 {
  145.                         $char = $left.$i.$right;
  146.                         if ($i==$pagecount)
  147.                         {
  148.                                 $char = "<font color='$color'>$char</font>";
  149.                         }
  150.                         $linkchar = "<a href='$linkhead"."pagecount=$i'>".$char."</a>";
  151.                         $linkbar  = $linkbar.$linkchar;
  152.                 }
  153.                 return $linkbar;
  154.         }
  155.         #End function num_bar();
  156.         function pre_group($char='')
  157.         {
  158.                 $pagecount   = $this->pagecount;
  159.                 $linkhead    = $this->linkhead;
  160.                 $num             = $this->num;
  161.                 $mid         = floor($num/2);
  162.                 $minpage     = (($pagecount-$mid)<1)?1:($pagecount-$mid);
  163.                 $char        = (empty($char))?"[<<]":$char;
  164.                 $pgpagecount = ($minpage>$num)?$minpage-$mid:1;
  165.                 return "<a href='$linkhead"."pagecount=$pgpagecount'>".$char."</a>";
  166.         }
  167.         #End function pre_group();
  168.         function next_group($char='')
  169.         {
  170.                 $pagecount = $this->pagecount;
  171.                 $linkhead  = $this->linkhead;
  172.                 $totalpage = $this->total_page;
  173.                 $num           = $this->num;
  174.                 $mid       = floor($num/2);
  175.                 $last      = $num;
  176.                 $minpage   = (($pagecount-$mid)<1)?1:($pagecount-$mid);
  177.                 $maxpage   = $minpage + $last;
  178.                 if ($maxpage>$totalpage)
  179.                 {
  180.                         $maxpage = $totalpage;
  181.                         $minpage = $maxpage - $last;
  182.                         $minpage = ($minpage<1)?1:$minpage;
  183.                 }
  184.                 $char = (empty($char))?"[>>]":$char;
  185.                 $ngpagecount = ($totalpage>$maxpage+$last)?$maxpage + $mid:$totalpage;
  186.                 return "<a href='$linkhead"."pagecount=$ngpagecount'>".$char."</a>";
  187.         }
  188.         #End function next_group();
  189.     function whole_num_bar($num='', $color='')
  190.     {
  191.         $num_bar    = $this->num_bar($num, $color);
  192.         $pre_group  = $this->pre_group();
  193.         $pre_page   = $this->pre_page();
  194.         $next_page  = $this->next_page();
  195.         $next_group = $this->next_group();
  196.             return  $pre_group.$pre_page.$num_bar.$next_page.$next_group;
  197.     }
  198.         #End function whole_bar();
  199.         
  200.         function Jump_form()
  201.         {
  202.                 $linkhead = $this->linkhead;
  203.                 $total          = $this->total_page;
  204.                 $form = <<<EOT
  205. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  206.         <script language="javascript">
  207.                 function jump(linkhead, total, page)
  208.                 {
  209.                         var pagecount = (page.value>total)?total:page.value;
  210.                         var pagecount = (pagecount<1)?1:pagecount;
  211.                         location.href = linkhead + "pagecount=" + pagecount;
  212.                                 
  213.                 }
  214.         </script>
  215.        <form name="pagebarjumpform" method="post" onSubmit="return jump('$linkhead', $total, this.form.page)"><tr>
  216.           <td>
  217.         <input name="page" type="text" size="1">
  218.                 <input type="button" name="Submit" value="GO" onClick="return jump('$linkhead', $total, this.form.page)">
  219.       </td>
  220.         </tr></form></table>
  221. EOT;
  222.         return $form;
  223.         }
  224.         #End function Jump_form();
  225. }
  226. #End class PageBar;
  227. /*****
  228.         //example
  229. $total = 1000;
  230. $onepage = 20;
  231. $pb       = new PageBar($total, $onepage);
  232. $offset   = $pb->offset();
  233. $pagebar  = $pb->whole_num_bar();
  234. $jumpform = $pb->Jump_form();
  235. echo $offset."<br>".$pagebar."<br>".$jumpform;
  236. return:
  237.    0
  238. [<<] [1][2][3][4][5][6][7][8][9][10][>][>>]
  239.    
  240. *****/
复制代码

                     我是一个呼吸着现在的空气而生活在过去的人
               这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
                                     我已习惯了孤独,爱上孤独
                                 他让我看清了自我,还原了自我
                             让我再静静的沉思中得到快乐和满足
                                   再孤独的世界里我一遍又一遍
                                   不厌其烦的改写着自己的过去
                                             延伸到现在与未来
                                       然而那只是泡沫般的美梦
                                 产生的时刻又伴随着破灭的到来
                         在灰飞烟灭的瞬间我看到的是过程的美丽
                                      而不是结果的悲哀。。。
返回列表