Skip to main content
 Web开发网 » 站长学院 » 织梦教程

织梦中通过dede:pagelist实现中英文分页效果

2020年09月12日6280百度已收录

效果如下:

织梦中通过dede:pagelist实现中英文分页效果  第1张

织梦中通过dede:pagelist实现中英文分页效果  第2张

首先需要找到安装目录下的include/arc.listview.class.php

上面代码已经做了如下的修改:

1、添加变量$pagelang

2、从页面中读取数据,并去除空格

3、找到里面的2个同名方法 GetPageListDM()--动态和静态的

将里面的方法进行如下替换

    /**

     *  获取静态的分页列表

     *

     * @access    public

     * @param     string  $list_len  列表宽度

     * @param     string  $list_len  列表样式

     * @return    string

     */

   //获取静态的分页列表

function GetPageListST($list_len,$listitem="index,end,pre,next,pageno",$pagelang)

{

/*****************************************************************************************/

if($pagelang=='en'){

                 $uahome=" Home ";

                 $uaprevious=" Previous ";

                 $uanext=" Next ";

                 $ualastpage=" Last Page ";

                 $uapage=" Page ";

                 $uatotal=" Total ";

                 $uarecords=" Records. ";

                   }else{

 $uahome="首页";

              $uaprevious="上一页";

                 $uanext="下一页";

                 $ualastpage="末页";

                 $uapage="页";

                 $uatotal="共";

                 $uarecords="条记录";

                    

                 }

 

$prepage = $nextpage = '';

$prepagenum = $this->PageNo-1;

$nextpagenum = $this->PageNo+1;

if($list_len=='' || ereg("[^0-9]",$list_len))

{

$list_len=3;

}

$totalpage = ceil($this->TotalResult/$this->PageSize);

if($totalpage<=1 && $this->TotalResult>0)

{

        return "<li><span class=\&;pageinfo\&;>".$uatotal." <strong>1</strong> ".$uapage." <strong>".$this->TotalResult."</strong> ".$uarecords."</span></li>\r\n";

}

if($this->TotalResult == 0)

{

        return "<li><span class=\&;pageinfo\&;>".$uatotal." <strong>0</strong> ".$uapage." <strong>".$this->TotalResult."</strong> ".$uarecords."</span></li>\r\n";

  

}

$purl = $this->GetCurUrl();

       $maininfo = "<li><span class=\&;pageinfo\&;>".$uatotal." <strong>{$totalpage}</strong> ".$uapage." <strong>".$this->TotalResult."</strong> ".$uarecords."</span></li>\r\n";

   

$tnamerule = $this->GetMakeFileRule($this->Fields['id'],"list",$this->Fields['typedir'],$this->Fields['defaultname'],$this->Fields['namerule2']);

$tnamerule = ereg_replace('^(.*)/','',$tnamerule);

 

 

 

 

 

 

//获得上一页和主页的链接

if($this->PageNo != 1)

{

$prepage.="<li><a href='".str_replace("{page}",$prepagenum,$tnamerule)."'>".$uaprevious."</a></li>\r\n";

$indexpage="<li><a href='".str_replace("{page}",1,$tnamerule)."'>".$uahome."</a></li>\r\n";

}

else

{

$indexpage="<li>".$uahome."</li>\r\n";

}

 

//下一页,未页的链接

if($this->PageNo!=$totalpage && $totalpage>1)

{

$nextpage.="<li><a href='".str_replace("{page}",$nextpagenum,$tnamerule)."'>".$uanext."</a></li>\r\n";

$endpage="<li><a href='".str_replace("{page}",$totalpage,$tnamerule)."'>".$ualastpage."</a></li>\r\n";

}

else

{

$endpage="<li>".$ualastpage."</li>\r\n";

}

 

//option链接

$optionlist = '';

 

$optionlen = strlen($totalpage);

$optionlen = $optionlen*12 + 18;

if($optionlen < 36) $optionlen = 36;

if($optionlen > 100) $optionlen = 100;

$optionlist = "<li><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></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=\&;thisclass\&;>$j</li>\r\n";

}

else

{

$listdd.="<li><a href='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>\r\n";

}

}

$plist = '';

if(eregi('index',$listitem)) $plist .= $indexpage;

if(eregi('pre',$listitem)) $plist .= $prepage;

if(eregi('pageno',$listitem)) $plist .= $listdd;

if(eregi('next',$listitem)) $plist .= $nextpage;

if(eregi('end',$listitem)) $plist .= $endpage;

if(eregi('option',$listitem)) $plist .= $optionlist;

if(eregi('info',$listitem)) $plist .= $maininfo;

 

return $plist;

}

 

   /**

     *  获取动态的分页列表

     *

     * @access    public

     * @param     string  $list_len  列表宽度

     * @param     string  $list_len  列表样式

     * @return    string

     */

function GetPageListDM($list_len,$listitem="index,end,pre,next,pageno",$pagelang)

{

/*****************************************************************************************/

if($pagelang=='en'){

                 $uahome=" Home ";

                 $uaprevious=" Previous ";

                 $uanext=" Next ";

                 $ualastpage=" Last Page ";

                 $uapage=" Page ";

                 $uatotal=" Total ";

                 $uarecords=" Records. ";

                   }else{

 $uahome="首页";

              $uaprevious="上一页";

                 $uanext="下一页";

                 $ualastpage="末页";

                 $uapage="页";

                 $uatotal="共";

                 $uarecords="条记录";

                    

                 }

global $cfg_rewrite;

$prepage = $nextpage = '';

$prepagenum = $this->PageNo-1;

$nextpagenum = $this->PageNo+1;

if($list_len=='' || ereg("[^0-9]",$list_len))

{

$list_len=3;

}

$totalpage = ceil($this->TotalResult/$this->PageSize);

if($totalpage<=1 && $this->TotalResult>0)

{

return "<li><span class=\&;pageinfo\&;>".$uatotal." 1 ".$uapage."/".$this->TotalResult."".$uarecords."</span></li>\r\n";

}

if($this->TotalResult == 0)

{

return "<li><span class=\&;pageinfo\&;>".$uatotal." 0 ".$uapage."/".$this->TotalResult."".$uarecords."</span></li>\r\n";

}

$maininfo = "<li><span class=\&;pageinfo\&;>".$uatotal." <strong>{$totalpage}</strong>".$uapage."<strong>".$this->TotalResult."</strong>".$uarecords."</span></li>\r\n";

 

$purl = $this->GetCurUrl();

if($cfg_rewrite == 'Y')

{

$nowurls = ereg_replace("\-", ".php?", $purl);

$nowurls = explode("?", $nowurls);

$purl = $nowurls[0];

}

 

$geturl = "tid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";

$purl .= '?'.$geturl;

 

$optionlist = '';

//$hidenform = "<input type='hidden' name='tid' value='".$this->TypeID."'>\r\n";

//$hidenform .= "<input type='hidden' name='TotalResult' value='".$this->TotalResult."'>\r\n";

 

//获得上一页和下一页的链接

if($this->PageNo != 1)

{

$prepage.="<li><a href='".$purl."PageNo=$prepagenum'>".$uaprevious."</a></li>\r\n";

$indexpage="<li><a href='".$purl."PageNo=1'>".$uahome."</a></li>\r\n";

}

else

{

$indexpage="<li><a>".$uahome."</a></li>\r\n";

}

if($this->PageNo!=$totalpage && $totalpage>1)

{

$nextpage.="<li><a href='".$purl."PageNo=$nextpagenum'>".$uanext."</a></li>\r\n";

$endpage="<li><a href='".$purl."PageNo=$totalpage'>".$ualastpage."</a></li>\r\n";

}

else

{

$endpage="<li><a>".$ualastpage."</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=\&;thisclass\&;><a>$j</a></li>\r\n";

}

else

{

$listdd.="<li><a href='".$purl."PageNo=$j'>".$j."</a></li>\r\n";

}

}

 

$plist = '';

if(eregi('index',$listitem)) $plist .= $indexpage;

if(eregi('pre',$listitem)) $plist .= $prepage;

if(eregi('pageno',$listitem)) $plist .= $listdd;

if(eregi('next',$listitem)) $plist .= $nextpage;

if(eregi('end',$listitem)) $plist .= $endpage;

if(eregi('option',$listitem)) $plist .= $optionlist;

if(eregi('info',$listitem)) $plist .= $maininfo;

 

if($cfg_rewrite == 'Y')

{

$plist = str_replace('.php?tid=', '-', $plist);

$plist = str_replace('&TotalResult=', '-', $plist);

$plist = preg_replace("/&PageNo=(\d+)/i",'-\\1.html',$plist);

}

return $plist;

 

}


注意是修改方法的参数,为其添加$pagelang个参数;

 

 

在页面中可以调用


         {dede:pagelist listsize='5'/}
         {dede:pagelist pagelang='en' listsize='5'/}

pagelang:en为英文,cn为中文,默认语言中文
 


评论列表暂无评论
发表评论
微信