青衣 发表于 2021-9-1 21:32:51

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

效果如下:


首先需要找到安装目录下的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.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;

}



$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为中文,默认语言中文




文档来源:网络转载 http://www.adminbuy.cn/dedecmsjc/6645.html
页: [1]
查看完整版本: 织梦中通过dede:pagelist实现中英文分页效果