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

效果如下:

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

 (一)直接下载arc.listview.class.php   (网址:http://download.csdn.net/detail/guoquanyou/3666794),并且替换掉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' οnchange='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为中文,默认语言中文


其他功能可以自行扩展




评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值