dede分页样式修改(支持bootstrap分页样式)

来源:互联网 发布:ff14人男大叔捏脸数据 编辑:程序博客网 时间:2024/05/15 23:48

bootstrap的分页样式十分美观,但是调用dede分页生成的样式却十分糟糕

{dede:pagelist listitem="info,index,end,pre,next,pageno,option" listsize="3"/}


因此我产生了让dede的分页变成bootstrap的想法


修改方法如下:

进入include/arc.listview.class.php

找到如下两个函数:

获取静态的分页列表:function GetPageListST($list_len,$listitem="index,end,pre,next,pageno")

获取动态的分页列表:function GetPageListDM($list_len,$listitem="index,end,pre,next,pageno")

里面有着如何输出分页HTML内容的代码,找到它们。

然后模仿bootstrap的分页html来改动它们:

<ul class="pagination">  <li class="disabled"><a href="#">«</a></li>  <li class="active"><a href="#">1</a></li>  <li><a href="#">2</a></li>  <li><a href="#">3</a></li>  <li><a href="#">4</a></li>  <li><a href="#">5</a></li>  <li><a href="#">»</a></li></ul>
你需要输出一个
<ul class="pagination"><span style="font-family: Arial, Helvetica, sans-serif;"></ul></span>
然后在其内部输出
<li><a href="#">页码</a></li>

这是我改动后的函数,需要的可以复制

    /**     *  获取静态的分页列表     *     * @access    public     * @param     string  $list_len  列表宽度     * @param     string  $list_len  列表样式     * @return    string     */    function GetPageListST($list_len,$listitem="index,end,pre,next,pageno")    {        $prepage = $nextpage = '';        $prepagenum = $this->PageNo-1;        $nextpagenum = $this->PageNo+1;        if($list_len=='' || preg_match("/[^0-9]/", $list_len))        {            $list_len=3;        }        $totalpage = ceil($this->TotalResult/$this->PageSize);        if($totalpage<=1 && $this->TotalResult>0)        {            return "<li><span class=\"disabled\">共 <strong>1</strong>页<strong>".$this->TotalResult."</strong>条记录</span></li>\r\n";        }        if($this->TotalResult == 0)        {            return "<li><span class=\"disabled\">共 <strong>0</strong>页<strong>".$this->TotalResult."</strong>条记录</span></li>\r\n";        }        $purl = $this->GetCurUrl();        $maininfo = "<li><span class=\"disabled\">共 <strong>{$totalpage}</strong>页<strong>".$this->TotalResult."</strong>条</span></li>\r\n";        $tnamerule = $this->GetMakeFileRule($this->Fields['id'],"list",$this->Fields['typedir'],$this->Fields['defaultname'],$this->Fields['namerule2']);        $tnamerule = preg_replace("/^(.*)\//", '', $tnamerule);        //获得上一页和主页的链接        if($this->PageNo != 1)        {            $prepage.="<li><a href='".str_replace("{page}",$prepagenum,$tnamerule)."'>上一页</a></li>\r\n";            $indexpage="<li><a href='".str_replace("{page}",1,$tnamerule)."'>首页</a></li>\r\n";        }        else        {            $indexpage="<li><a>首页</a></li>\r\n";        }        //下一页,未页的链接        if($this->PageNo!=$totalpage && $totalpage>1)        {            $nextpage.="<li><a href='".str_replace("{page}",$nextpagenum,$tnamerule)."'>下一页</a></li>\r\n";            $endpage="<li><a href='".str_replace("{page}",$totalpage,$tnamerule)."'>末页</a></li>\r\n";        }        else        {            $endpage="<li><a>末页</a></li>\r\n";        }        //option链接        $optionlist = '';        $optionlen = strlen($totalpage);        $optionlen = $optionlen*12 + 18;        if($optionlen < 36) $optionlen = 36;        if($optionlen > 100) $optionlen = 100;        $optionlist = "<li><a>跳转至<select name='sldd' style='width:{$optionlen}px' onchange='location.href=this.options[this.selectedIndex].value;' >\r\n";        for($mjj=1;$mjj<=$totalpage;$mjj++)        {            if($mjj==$this->PageNo)            {                $optionlist .= "<option value='".str_replace("{page}",$mjj,$tnamerule)."' selected>$mjj</option>\r\n";            }            else            {                $optionlist .= "<option value='".str_replace("{page}",$mjj,$tnamerule)."'>$mjj</option>\r\n";            }        }        $optionlist .= "</select>页</a></li>\r\n";        //获得数字链接        $listdd="";        $total_list = $list_len * 2 + 1;        if($this->PageNo >= $total_list)        {            $j = $this->PageNo-$list_len;            $total_list = $this->PageNo+$list_len;            if($total_list>$totalpage)            {                $total_list=$totalpage;            }        }        else        {            $j=1;            if($total_list>$totalpage)            {                $total_list=$totalpage;            }        }        for($j;$j<=$total_list;$j++)        {            if($j==$this->PageNo)            {                $listdd.= "<li class=\"active\"><a>$j</a></li>\r\n";            }            else            {                $listdd.="<li><a href='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>\r\n";            }        }        $plist = '';        if(preg_match('/index/i', $listitem)) $plist .= $indexpage;        if(preg_match('/pre/i', $listitem)) $plist .= $prepage;        if(preg_match('/pageno/i', $listitem)) $plist .= $listdd;        if(preg_match('/next/i', $listitem)) $plist .= $nextpage;        if(preg_match('/end/i', $listitem)) $plist .= $endpage;        if(preg_match('/option/i', $listitem)) $plist .= $optionlist;        if(preg_match('/info/i', $listitem)) $plist .= $maininfo;                return $plist;    }


0 0