實現(xiàn)dedecms圖集單擊圖片翻頁的功能
更新時間:2008年03月23日 17:48:10 作者:
題記:在很多相冊的網(wǎng)站中,都有這樣的功能:當(dāng)圖片分多頁顯示的情況下,點擊圖片會自動翻頁到下一張圖片,接下來我們在dedecms4中實現(xiàn)這個功能。以下是實現(xiàn)方法:
1、為了實現(xiàn)這個功能,我們首先需要獲得圖片頁面的當(dāng)前頁碼和總頁碼
編輯include/inc_archives_view.php文件
(1)找到function ParseDMFields,修改為:
function ParseDMFields($pageNo,$ismake=1)
{
$this->NowPage = $pageNo;
//獲得當(dāng)前頁面編號
$this->Fields['cpagenum'] = $this->NowPage;
if($this->SplitPageField!="" &&
isset($this->Fields[$this->SplitPageField]))
{
$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];
}
注意增加了如下代碼用來獲得當(dāng)前的頁碼:
$this->Fields['cpagenum'] = $this->NowPage;
(2)找到function __construct構(gòu)造函數(shù),修改為:
<?php
……
$this->TotalPage = count($this->SplitFields);
}
//獲得當(dāng)前頁面總數(shù)
$this->Fields['totalpage'] = $this->TotalPage;
$this->LoadTemplet();
$this->ParseTempletsFirst();
}
注意增加了如下代碼用來獲得總頁碼:
$this->Fields['totalpage'] = $this->TotalPage;
2、接下來在模板中用js實現(xiàn)分析靜態(tài)頁面和動態(tài)頁面以及向下翻頁
編輯article_image.htm或者你的圖集最終顯示的模板,增加如下js代碼:
<script language="javascript">
var npage = {dede:field name='cpagenum'/};
var totalpage = {dede:field name='totalpage'/};
var filename="";
var curl=location.href;
function goNextPic(){
str1 = /\.html/ig;
str2 = /_/ig;
r = curl.search(str1);
r1 = curl.search(str2);
if(r>0){
if(npage==1) filename = curl.substr(0,r);
else filename = curl.substr(0,r1);
if(npage==totalpage){ location.href = filename+".html"; }
else{
location.href = filename+"_"+(npage+1)+".html";
}
}else{
if(npage==totalpage){ location.href = "view.php?aid={dede:field name='id'/}"; }
else{
location.href = "view.php?aid={dede:field name='id'/}&pageno="+(npage+1);
}
}
}
</script>
在這個js腳本中,我們定義一個方法goNextPic用來切換到下一個圖片。
3、最后修改圖片輸出代碼,完成goNextPic方法調(diào)用
修改include/inc_channel_unit.php
找到”//全部列出式或分頁式圖集”的部分。
修改類似(仔細看代碼,需要修改好幾個地方):
$revalue = "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center>\r\n";
為:
$revalue = "<center><a href='javascript:goNextPic();'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
編輯include/inc_archives_view.php文件
(1)找到function ParseDMFields,修改為:
function ParseDMFields($pageNo,$ismake=1)
{
$this->NowPage = $pageNo;
//獲得當(dāng)前頁面編號
$this->Fields['cpagenum'] = $this->NowPage;
if($this->SplitPageField!="" &&
isset($this->Fields[$this->SplitPageField]))
{
$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];
}
注意增加了如下代碼用來獲得當(dāng)前的頁碼:
$this->Fields['cpagenum'] = $this->NowPage;
(2)找到function __construct構(gòu)造函數(shù),修改為:
<?php
……
$this->TotalPage = count($this->SplitFields);
}
//獲得當(dāng)前頁面總數(shù)
$this->Fields['totalpage'] = $this->TotalPage;
$this->LoadTemplet();
$this->ParseTempletsFirst();
}
注意增加了如下代碼用來獲得總頁碼:
$this->Fields['totalpage'] = $this->TotalPage;
2、接下來在模板中用js實現(xiàn)分析靜態(tài)頁面和動態(tài)頁面以及向下翻頁
編輯article_image.htm或者你的圖集最終顯示的模板,增加如下js代碼:
<script language="javascript">
var npage = {dede:field name='cpagenum'/};
var totalpage = {dede:field name='totalpage'/};
var filename="";
var curl=location.href;
function goNextPic(){
str1 = /\.html/ig;
str2 = /_/ig;
r = curl.search(str1);
r1 = curl.search(str2);
if(r>0){
if(npage==1) filename = curl.substr(0,r);
else filename = curl.substr(0,r1);
if(npage==totalpage){ location.href = filename+".html"; }
else{
location.href = filename+"_"+(npage+1)+".html";
}
}else{
if(npage==totalpage){ location.href = "view.php?aid={dede:field name='id'/}"; }
else{
location.href = "view.php?aid={dede:field name='id'/}&pageno="+(npage+1);
}
}
}
</script>
在這個js腳本中,我們定義一個方法goNextPic用來切換到下一個圖片。
3、最后修改圖片輸出代碼,完成goNextPic方法調(diào)用
修改include/inc_channel_unit.php
找到”//全部列出式或分頁式圖集”的部分。
修改類似(仔細看代碼,需要修改好幾個地方):
$revalue = "<center><a href='$src' target='_blank'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center>\r\n";
為:
$revalue = "<center><a href='javascript:goNextPic();'><img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> ";
相關(guān)文章
dedecms實現(xiàn)仿downkr的sitemap效果代碼
dedecms實現(xiàn)仿downkr的sitemap效果代碼,本人對php不是很懂,只是慢慢摸索的,希望大家有好的東西一起交流,實現(xiàn)仿sitemap2008-03-03
dedecms統(tǒng)計欄目文章數(shù)量實現(xiàn)代碼修訂版
以下的實現(xiàn)辦法為修訂的方法,可實現(xiàn)任意指定欄目的文章數(shù)量統(tǒng)計,包括最終列表欄目和含有子欄目的欄目。2008-03-03
dedecms v5.1 WriteBookText() code injection vul注入漏洞
來源:Ph4nt0m Google Group by Flyh4t@126.com QQ:3783679422008-05-05
Dedecms模板常用調(diào)用標(biāo)簽代碼整理
因為一直用到dedecms的模板,特把經(jīng)常用到的調(diào)用標(biāo)簽代碼整理如下2008-05-05
實現(xiàn)讓DeDecms的上下文章鏈接限制在當(dāng)前欄目內(nèi)
使用dedecms的時候,當(dāng)打開某篇文章的時候,底部會有“上一篇”“下一篇”的鏈接信息,默認(rèn)情況下,上下鏈接信息并沒有區(qū)分欄目的屬性,那么需要實現(xiàn)本欄目內(nèi)的上下篇,如何實現(xiàn)呢? 基本思路:實現(xiàn)上下文章鏈接的函數(shù)位于GetPreNext(),我們在這個函數(shù)中獲得欄目ID,然后修改SQL語句,在查詢數(shù)據(jù)庫的時候加上欄目ID的限制。2008-03-03
DeDecms中利用關(guān)鍵詞實現(xiàn)簡單tag功能的php代碼
此方法的思路是直接調(diào)用dedecms每篇文章的關(guān)鍵詞,以此作為tag標(biāo)簽,在通過模板的編程為每個關(guān)鍵詞增加搜索鏈接,好處即為無需修改程序即可實現(xiàn)簡單的tag標(biāo)簽功能,實現(xiàn)方法參考如下:2008-03-03

