题记:在很多相册的网站中,都有这样的功能:当图片分多页显示的情况下,点击图片会自动翻页到下一张图片,接下来我们在dedecms4中实现这个功能。以下是实现方法:
1、为了实现这个功能,我们首先需要获得图片页面的当前页码和总页码
编辑include/inc_archives_view.php文件
(1)找到function ParseDMFields,修改为:
function
ParseDMFields(
$pageNo
,
$ismake
=
1
)
{
$this -> NowPage = $pageNo ;
// 获得当前页面编号
$this -> Fields[ ' cpagenum ' ] = $this -> NowPage;
if ( $this -> SplitPageField != "" && isset ( $this -> Fields[ $this -> SplitPageField]))
{
$this -> Fields[ $this -> SplitPageField] = $this -> SplitFields[ $pageNo - 1 ];
}
}
{
$this -> NowPage = $pageNo ;
// 获得当前页面编号
$this -> Fields[ ' cpagenum ' ] = $this -> NowPage;
if ( $this -> SplitPageField != "" && isset ( $this -> Fields[ $this -> SplitPageField]))
{
$this -> Fields[ $this -> SplitPageField] = $this -> SplitFields[ $pageNo - 1 ];
}
}
(2)找到function __construct构造函数,修改为:
<?
php
……
$this -> TotalPage = count ( $this -> SplitFields);
}
// 获得当前页面总数
$this -> Fields[ ' totalpage ' ] = $this -> TotalPage;
$this -> LoadTemplet();
$this -> ParseTempletsFirst();
}
……
$this -> TotalPage = count ( $this -> SplitFields);
}
// 获得当前页面总数
$this -> Fields[ ' totalpage ' ] = $this -> TotalPage;
$this -> LoadTemplet();
$this -> ParseTempletsFirst();
}
2、接下来在模板中用js实现分析静态页面和动态页面以及向下翻页
编辑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 >
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方法调用
修改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> " ;
<img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> " ;
为:
$revalue
=
"
<center><a href='javascript:goNextPic();'>
<img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> " ;
<img src='$src' alt='$alt' $iw border='0'/></a><br/>$alt<br/></center> " ;
the end. have fun!
Trackback url : http://www.blog-dragon.com/2007/12/dedecms-pic-gopage.html/trackback