+ -
当前位置:首页 → 问答吧 → 昨晚失眠,仿制DISCUZ的页面导航!

昨晚失眠,仿制DISCUZ的页面导航!

时间:2006-06-24

来源:互联网

pic.JPG (7.96 KB)
2006-6-24 07:10

<style>
        #page_main{background-color: #F8F8F8;font:12px Tahoma, Verdana; color: #000000;text-align:center;height: 20px;border: 1px solid #000066;}
        #page_main a{text-decoration: none; color: #003366}
                #page_main_head_1{float:left;width:70px;font: 11px Tahoma, Verdana; color: #FFFFFF; font-weight: bold; background-color: #4277AD;line-height: 20px;height: 20px;}
                #page_main_head_2{float:left;width:90px;font: 11px Tahoma, Verdana; color: #FFFFFF; font-weight: bold; background-color: #4277AD;line-height: 20px;height: 20px;}
                #page_main_link{float:left;width:30px;font: 11px Tahoma, Verdana; font-weight: bold;line-height: 20px;height: 20px;}
                #page_main_line{float:left;width:1px;height:20px;background-color:#000066}

</style>


<?

        function Get_Page_bar($Page=1,$Rcnt=1,$beforeLink,$Psze=20,$MaxPage=0){
                /*
                看到discuz的导航菜单,感觉不错。所以写了个!
                Get_Page_bar(页码,总记录数,导航链接,每页记录数,最大显示页号) 后面二项是可选的
                导航链接写成的格式如?page={p} 或者forum-4-{p}.html
                例如http://www.phpx.com/happy/forum-4-1.html的写为forum-4-{p}.html
                最大显示页号,即分页最大的页号,如如上面的地址他设定为1000
                最好上面的那些CSS代码找CSS文件保存
                漠北怪叟做的分页导航的过程.其实很简单只是把基本功能 装在类里面方便调用而已.
                我的QQ 4620498 欢迎大家改进
               
                做程序员.NND就是累啊,都不知明天在何方啊.
               
                                                                                        2006.6.22
       
                调用方式
               
                //       
                echo Get_Page_bar($page,54226,"?page={p}",20,1000)               

                       
       
       
        */
        /*此行以下可以保存为为公用文件mail.inc.php,前提是设置好以下七个设置*/
                $Pcnt=$Rcnt%$Psze!=0?ceil($Rcnt/$Psze):$Rcnt/$Psze;        //总页数
                if ($Pcnt<1)return false;
                $tPage="
                                                <div id=\"page_main\">
                                                <div id=\"page_main_head_1\">$Rcnt</div>
                                                <div id=\"page_main_line\"></div>
                                                <div id=\"page_main_head_2\">$Page/$Pcnt</div>
                                                <div id=\"page_main_line\"></div>
                                                <!--开始列表-->
                ";
                //需要确定是否显示最前页与上一页链接
                if ($Page>1){
                        $tPage.="
                                                <div id=\"page_main_link\"><a href=".str_replace("{p}",1,$beforeLink)."><b>|</b>&lt;</a> </div>
                                                <div id=\"page_main_line\"></div>
                                                <div id=\"page_main_link\"><a href=".str_replace("{p}",($Page-1),$beforeLink).">&lt;</a> </div>
                                                <div id=\"page_main_line\"></div>
                        ";
                }
                //确定所在的10的倍数
                $nCnt=ceil($Page/10)-1;
               
                for ($iCnt=$nCnt*10+1;$iCnt<=($nCnt+1)*10;$iCnt++){
                                if ($iCnt>=$Pcnt){break;}
                                if ($iCnt==$Page){
                                        $tPage.="
                                                <div id=\"page_main_link\" style=\"background-color: #4277AD;color:#ffffff\">$iCnt </div>
                                                <div id=\"page_main_line\"></div>       
                                                ";                               
                                       
                                }else{
                                        $tPage.="
                                                <div id=\"page_main_link\"><a href=".str_replace("{p}",$iCnt,$beforeLink).">$iCnt</a> </div>
                                                <div id=\"page_main_line\"></div>       
                                                ";       
                                }
                }
               
               
                //需要确定是否显示最后面
                $MaxPageno=($Pcnt>=$MaxPage && $MaxPage!==0)?$MaxPage:$Pcnt;        //最终允许的尾页
                if ($Page+1<=$Pcnt){
                        $tPage.="
                                                <div id=\"page_main_link\"><a href=".str_replace("{p}",($Page+1)<=$MaxPageno?$Page+1:$MaxPageno,$beforeLink).">&gt;</a> </div>
                                                <div id=\"page_main_line\"></div>       
                                                <div id=\"page_main_link\"><a href=".str_replace("{p}",$MaxPageno,$beforeLink).">&gt; <b>|</b></a></div>       
                                                <div id=\"page_main_line\"></div>
                        ";
                }
               
                $tPage.="
                                                <!--结束列表-->
                                                </div>
                ";
                return $tPage;
        }

?>


------demo.php------
<link href="page.css" rel="stylesheet" type="text/css" />
<?php
        require("page.inc.php");
        $page=isset($_GET["page"])?(int)$_GET["page"]:1;
       
?>
<table width="621" border="0">
  <tr>
    <td><?php echo Get_Page_bar($page,54226,"?page={p}",20,1000)?></td>
  </tr>
</table>

[[i] 本帖最后由 漠北怪叟 于 2006-6-27 15:04 编辑 [/i]]

作者: 漠北怪叟   发布时间: 2006-06-24

移到原创区:)

作者: Phzzy   发布时间: 2006-06-24

可怜的PHP和HTML混合习惯

作者: Phzzy   发布时间: 2006-06-24

强人,顶

作者: gabin   发布时间: 2006-06-25

引用:
原帖由 gabin 于 2006-6-24 22:46 发表
可怜的PHP和HTML混合习惯
楼主啊。我都想代码分离,可是你有没想过,这个模块改为代码分离,会增加多少代码?

对于一个想让代码更简单的小过程,你觉得那样值吗?

作者: xiaojia   发布时间: 2006-06-25

漠北怪叟  
大侠的名字,支持一下。

作者: 漠北怪叟   发布时间: 2006-06-27

引用:
原帖由 漠北怪叟 于 2006-6-25 23:26 发表


楼主啊。我都想代码分离,可是你有没想过,这个模块改为代码分离,会增加多少代码?

对于一个想让代码更简单的小过程,你觉得那样值吗?
非常赞成这种说法,我写程序前台是用的smarty,后台全部是混合,原因是没有分离的必要,后台是给管理员看的,没必要增加无谓的代码。而这里也差不多, 实现一个简单的功能,没必要还用到模板分离!

p.s. 这篇文章我DZ上看到过

作者: Per   发布时间: 2006-06-30

不错~~~~~

作者: Zero   发布时间: 2006-06-30

还有这一说啊,,了解不少 ..... 虽然程序看不懂

作者: Mixthon   发布时间: 2006-07-15