实现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 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织梦系统数据库表结构详细说明-附表名与字段名

    dedecms织梦系统是一个自由和开放源码的内容管理系统,简单易用,功能丰富,原生php程序,二开简单,曾经流行了好多年,就是现在还有人再使用。本文囊括了dedecms数据库所有的86张数据表结构和字段详细说明,需要的朋友可以参考下。
    2023-04-04
  • dedecms实现仿downkr的sitemap效果代码

    dedecms实现仿downkr的sitemap效果代码

    dedecms实现仿downkr的sitemap效果代码,本人对php不是很懂,只是慢慢摸索的,希望大家有好的东西一起交流,实现仿sitemap
    2008-03-03
  • dedecms采集过滤常用代码集合

    dedecms采集过滤常用代码集合

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

    dedecms织梦模板引擎标签工作原理

    织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。
    2022-12-12
  • dedecms 内容页责任编辑调用代码

    dedecms 内容页责任编辑调用代码

    上班时间紧 写了有点乱 大家要看仔细点 不要改错了 (郑重声明:修改前请备份原文件) 第一步 先修改内容页模板吧 (打开 templetsdefault 目录下的 article_article.htm) 在你需要调用责任编辑的地方加入如下代码: 责任编辑:{dede:adminname/}
    2008-05-05
  • dedecms下仿chinaz二级下拉动态读取代码

    dedecms下仿chinaz二级下拉动态读取代码

    最近用dedecms模仿chinaz的模板,发现每次都用静态以后的文件特麻烦,没想到网上已经有高手给解决了,大家看代码
    2008-05-05
  • dedecms统计栏目文章数量实现代码修订版

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

    以下的实现办法为修订的方法,可实现任意指定栏目的文章数量统计,包括最终列表栏目和含有子栏目的栏目。
    2008-03-03
  • DEDE添加迅雷专用链接(半迅雷化)

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

    半迅雷化专用链接,原来的地址仍然会显示,不利于隐藏真实下载地址,真实下载地址可直接通过源文件看到
    2008-11-11
  • dedecms负载性能优化实例,三招让你的dedecms快10倍以上

    dedecms负载性能优化实例,三招让你的dedecms快10倍以上

    对dedecms表现出来的相对较差的性能也感觉比较迷惑,到底是什么在制约其负载效率?难道真的是某些脑残的dede论坛版主说的是因为mysql不堪重负的原因吗?
    2008-09-09

最新评论