[織夢教程]DEDECMS模板實現圖集單擊圖片翻頁的功能的代碼

閱讀 ?·? 發布日期 2019-06-24 17:59 ?·? admin
1、為了實現這個功能,我們首先需要獲得圖片頁面的當前頁碼和總頁碼 
編輯include/inc_archives_view.php文件 

(1)找到function ParseDMFields,修改為:

01 function ParseDMFields($pageNo,$ismake=1) 
02
03 $this->NowPage = $pageNo; 
04 //獲得當前頁面編號 
05 $this->Fields['cpagenum'] = $this->NowPage; 
06 if($this->SplitPageField!="" && 
07 isset($this->Fields[$this->SplitPageField])) 
08
09 $this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1]; 
10 }

注意增加了如下代碼用來獲得當前的頁碼:

1 $this->Fields['cpagenum'] = $this->NowPage;


(2)找到function __construct構造函數,修改為:

1 $this->TotalPage = count($this->SplitFields); 
2
3 //獲得當前頁面總數 
4 $this->Fields['totalpage'] = $this->TotalPage; 
5 $this->LoadTemplet(); 
6 $this->ParseTempletsFirst(); 
7 }

注意增加了如下代碼用來獲得總頁碼:

1 $this->Fields['totalpage'] = $this->TotalPage;


2、接下來在模板中用js實現分析靜態頁面和動態頁面以及向下翻頁 
編輯article_image.htm或者你的圖集最終顯示的模板,增加如下js代碼:

01 <script language="javascript"> 
02 var npage = {dede:field/}; 
03 var totalpage = {dede:field/}; 
04 var filename=""; 
05 var curl=location.href; 
06  
07 function goNextPic(){ 
08 str1 = /.html/ig; 
09 str2 = /_/ig; 
10 r = curl.search(str1); 
11 r1 = curl.search(str2); 
12 if(r>0){ 
13 if(npage==1) filename = curl.substr(0,r); 
14 else filename = curl.substr(0,r1); 
15  
16 if(npage==totalpage){ location.href = filename+".html"; } 
17 else{ 
18 location.href = filename+"_"+(npage+1)+".html"; 
19
20 }else{ 
21 if(npage==totalpage){ location.href = "view.php?aid={dede:field/}"; } 
22 else{ 
23 location.href = "view.php?aid={dede:field/}&pageno="+(npage+1); 
24
25
26
27 </script>

在這個js腳本中,我們定義一個方法goNextPic用來切換到下一個圖片。 

3、最后修改圖片輸出代碼,完成goNextPic方法調用 

修改include/inc_channel_unit.php 
找到"//全部列出式或分頁式圖集"的部分。 
修改類似(仔細看代碼,需要修改好幾個地方):

1 $revalue = "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw/></a><br/>$alt<br/></center>rn";

 
1 $revalue = "<center><a href='javascript:goNextPic();'><img src='$src' alt='$alt' $iw/></a><br/>$alt<br/></center> ";