织梦中通过dede:pagelist实现中英文分页效果
首先需要找到安装目录下的include/arc.listview.class.php
上面代码已经做了如下的修改:www.ynwuguji.com
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>rn";
}
if($this->TotalResult==0)
{
return"<li><span class="pageinfo">".$uatotal."<strong>0</strong>".$uapage."<strong>".$this->TotalResult."</strong>".$uarecords."</span></li>rn";
}
$purl=$this->GetCurUrl();
$maininfo="<li><span class="pageinfo">".$uatotal."<strong>{$totalpage}</strong>".$uapage."<strong>".$this->TotalResult."</strong>".$uarecords."</span></li>rn";
$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>rn";
$indexpage="<li><a href='".str_replace("{page}",1,$tnamerule)."'>".$uahome."</a></li>rn";
}
else
{
$indexpage="<li>".$uahome."</li>rn";
}
//下一页,未页的链接
if($this->PageNo!=$totalpage&&$totalpage>1)
{
$nextpage.="<li><a href='".str_replace("{page}",$nextpagenum,$tnamerule)."'>".$uanext."</a></li>rn";
$endpage="<li><a href='".str_replace("{page}",$totalpage,$tnamerule)."'>".$ualastpage."</a></li>rn";
}
else
{
$endpage="<li>".$ualastpage."</li>rn";
}
//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;'>rn";
for($mjj=1;$mjj<=$totalpage;$mjj++)
{
if($mjj==$this->PageNo)
{
$optionlist.="<option value='".str_replace("{page}",$mjj,$tnamerule)."'selected>$mjj</option>rn";
}
else
{
$optionlist.="<option value='".str_replace("{page}",$mjj,$tnamerule)."'>$mjj</option>rn";
}
}
$optionlist.="</select></li>rn";
//获得数字链接
$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>rn";
}
else
{
$listdd.="<li><a href='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>rn";
}
}
$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>rn";
}
if($this->TotalResult==0)
{
return"<li><span class="pageinfo">".$uatotal."0".$uapage."/".$this->TotalResult."".$uarecords."</span></li>rn";
}
$maininfo="<li><span class="pageinfo">".$uatotal."<strong>{$totalpage}</strong>".$uapage."<strong>".$this->TotalResult."</strong>".$uarecords."</span></li>rn";
$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."'>rn";
//$hidenform.="<input type='hidden'name='TotalResult'value='".$this->TotalResult."'>rn";
//获得上一页和下一页的链接
if($this->PageNo!=1)
{
$prepage.="<li><a href='".$purl."PageNo=$prepagenum'>".$uaprevious."</a></li>rn";
$indexpage="<li><a href='".$purl."PageNo=1'>".$uahome."</a></li>rn";
}
else
{
$indexpage="<li><a>".$uahome."</a></li>rn";
}
if($this->PageNo!=$totalpage&&$totalpage>1)
{
$nextpage.="<li><a href='".$purl."PageNo=$nextpagenum'>".$uanext."</a></li>rn";
$endpage="<li><a href='".$purl."PageNo=$totalpage'>".$ualastpage."</a></li>rn";
}
else
{
$endpage="<li><a>".$ualastpage."</a></li>rn";
}
//获得数字链接
$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>rn";
}
else
{
$listdd.="<li><a href='".$purl."PageNo=$j'>".$j."</a></li>rn";
}
}
$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为中文,默认语言中文