DedeCMS织梦列表第一页跟其它页使用不同模板

前端之家收集整理的这篇文章主要介绍了DedeCMS织梦列表第一页跟其它页使用不同模板前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。

有时候我们需要让织梦列表页的第一页跟第二页以及后面的页面的展示效果不同,使用不同的模板,但是目前网上也没有其他比较好的方案,那么下面织梦学习网就给大家介绍一个最简单的办法,通过修改文件来为栏目列表页第一页单独指定一个模板,其余页面调用另一个模板。具体修改文件以及代码如下:

1、找到并打开 include/arc.listview.class.PHP 文件,在里面大约第 304 行的位置找到 Display 函数,找到如下代码

$this->ParseTempletsFirst();

在这句代码的上面添加以下代码

if($this->PageNo>1){

$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'].

"/".$GLOBALS['cfg_df_style']."/list_article2.htm";

$this->dtp->LoadTemplate($tempfile);

}

上面的代码是判断当列表页数大于 1 时,织梦就会调用 list_article2.htm 来作为当前列表页模板了。

2、添加以上代码后,在动态浏览栏目时已经能够成功实现了,但会生成栏目静态 HTML 页后,仍然不能正常调用,还需要继续修改。我们继续在 include/arc.listview.class.PHP 文件里面找到如下代码

$this->ParseDMFields($this->PageNo,1);

在这句代码的上面添加以下代码

if($this->PageNo>1){

$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']

."/".$GLOBALS['cfg_df_style']."/list_article2.htm";

$this->dtp->LoadTemplate($tempfile);

$this->ParseTempletsFirst();

}

修改到这里之后无论是静态页还是动态页都能达到理想的效果了。

3、但是如果多个内容模型使用了多个列表页的模板,那么每个内容模型的栏目列表页的第二页都会用 list_article2.htm 来作为模板,这样我们需要进行修改,将第 1 步跟第 2 步里面的下面这段代码

$tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir']

."/".$GLOBALS['cfg_df_style']."/list_article2.htm";

修改为:

$tmpdir = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'];

$tempfile = str_replace("{tid}",$this->TypeID,$this->Fields['templist']);

$tempfile = str_replace("{cid}",$this->ChannelUnit->ChannelInfos['nid'],$tempfile);

$tempfile = $tmpdir."/".$tempfile;

$tmpfile2 = substr($tempfile,-4);

$tempfile = $tmpfile2."2.htm";

这样系统就会自动获取当前内容模型列表页模板后面加了 2 的模板,例如图集列表页的第一页的模板是 list_image.htm,那么图集第二页的模板就是 list_image2.htm 了,这样就方便多了。

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

猜你在找的Dedecms相关文章