实现dedecms图集单击图片翻页的功能

 更新时间:2008年03月23日 17:48:10   作者:  
题记:在很多相册的网站中,都有这样的功能:当图片分多页显示的情况下,点击图片会自动翻页到下一张图片,接下来我们在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->Fields['cpagenum'] = $this->NowPage;

(2)找到function __construct构造函数,修改为:

<?php
……
             $this->TotalPage = count($this->SplitFields);
         }
        //获得当前页面总数
         $this->Fields['totalpage'] = $this->TotalPage;         
         $this->LoadTemplet();
         $this->ParseTempletsFirst();
     }
注意增加了如下代码用来获得总页码:
$this->Fields['totalpage'] = $this->TotalPage;

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>
在这个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>\r\n";
为:

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

相关文章

  • dedecms实现仿downkr的sitemap效果代码

    dedecms实现仿downkr的sitemap效果代码

    dedecms实现仿downkr的sitemap效果代码,本人对php不是很懂,只是慢慢摸索的,希望大家有好的东西一起交流,实现仿sitemap
    2008-03-03
  • DEDE 24小时内发布的信息日期为红色

    DEDE 24小时内发布的信息日期为红色

    主要是学习他的思路,以后我们就能很方便的增加功能了
    2008-08-08
  • dedecms统计栏目文章数量实现代码修订版

    dedecms统计栏目文章数量实现代码修订版

    以下的实现办法为修订的方法,可实现任意指定栏目的文章数量统计,包括最终列表栏目和含有子栏目的栏目。
    2008-03-03
  • dedecms列表中显示文章完整标题的解决办法

    dedecms列表中显示文章完整标题的解决办法

    dedecms通过标签arclist输出文章列表的时候,文章的标题会被titlelen属性截取为指定长度的字符串, 但是我们在实际使用的过程中,经常会用到文章标题的完整内容,在dedecms中如何实现呢,方法很多,这里推荐通过小小的修改程序,达到目的。
    2008-03-03
  • DEDE添加迅雷专用链接(半迅雷化)

    DEDE添加迅雷专用链接(半迅雷化)

    半迅雷化专用链接,原来的地址仍然会显示,不利于隐藏真实下载地址,真实下载地址可直接通过源文件看到
    2008-11-11
  • dedecms v5.1 WriteBookText() code injection vul注入漏洞

    dedecms v5.1 WriteBookText() code injection vul注入漏洞

    来源:Ph4nt0m Google Group by Flyh4t@126.com QQ:378367942
    2008-05-05
  • dedecms采集过滤常用代码集合

    dedecms采集过滤常用代码集合

    dede采集过程中最麻烦的莫过于采集的正则过滤函数的编写。说实在的,dede在这点上和很多ASP CMS系统比如说动易等,采集的时候直接选择几个选项就可以了,简单的完成想过滤的东西。不过他们只局限于对文章内容的过滤不是很好。而DEDE却能对所有采集的字段进行过滤,功能上弥补了易用性的缺陷,期待柏拉图在后续版本中加上选择性过滤功能。
    2008-03-03
  • Dedecms模板常用调用标签代码整理

    Dedecms模板常用调用标签代码整理

    因为一直用到dedecms的模板,特把经常用到的调用标签代码整理如下
    2008-05-05
  • 实现让DeDecms的上下文章链接限制在当前栏目内

    实现让DeDecms的上下文章链接限制在当前栏目内

    使用dedecms的时候,当打开某篇文章的时候,底部会有“上一篇”“下一篇”的链接信息,默认情况下,上下链接信息并没有区分栏目的属性,那么需要实现本栏目内的上下篇,如何实现呢? 基本思路:实现上下文章链接的函数位于GetPreNext(),我们在这个函数中获得栏目ID,然后修改SQL语句,在查询数据库的时候加上栏目ID的限制。
    2008-03-03
  • DeDecms中利用关键词实现简单tag功能的php代码

    DeDecms中利用关键词实现简单tag功能的php代码

    此方法的思路是直接调用dedecms每篇文章的关键词,以此作为tag标签,在通过模板的编程为每个关键词增加搜索链接,好处即为无需修改程序即可实现简单的tag标签功能,实现方法参考如下:
    2008-03-03

最新评论