织梦中通过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为中文,默认语言中文

posted @ 2020-08-22 11:09  赵sir阿  阅读(292)  评论(0编辑  收藏  举报
友情链接: 3721家电维修 管道疏通 家电清洗 家电维修平台