修改方法如下:
首先,打开 `include` 目录下的 `arc.listview.class.php` 文件,找到 `Display` 函数(大约在 397 行)。然后找到以下代码:
$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 时,Dedecms CMS 将会调用 `list_article2.htm` 作为列表页模板。
接下来,在动态浏览栏目时,此功能已可实现。但生成栏目静态 HTML 页面后,可能会发现未达到预期效果。此时,搜索以下代码:
$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();
}
至此,无论是静态页还是动态页,都可以达到理想效果。
您可能会问,如果一个栏目有多个列表页模板,难道每个栏目的第二页都使用 `list_article2.htm` 作为模板吗?解决办法是将以下代码:
$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,0,-4);
$tempfile = $tmpfile2."2.htm";
现在,系统会自动获取列表页模板后面加了“2”的模板。例如,如果列表页模板是 `list_image.htm`,那么第二页的模板将是 `list_image2.htm`。这样,操作起来更加方便。
希望以上内容对您有所帮助!