在使用 DedeCMS 构建网站时,图集功能是一个非常实用的模块。然而,默认情况下,当用户点击到最后一页时,系统会提示“没有了哦”,这可能会降低用户体验。为了提升用户的浏览体验,我们可以对 DedeCMS 进行一些简单的修改,使得在点击图集最后一页时,能够自动跳转到下一篇图集。
下面是实现这一功能的具体步骤:
第一步:修改 include/arc.archives.class.php 文件
1. 查找“解析模板,对内容里的变动进行赋值”这段话,并在其上方添加以下代码:
function ClickPicNext($ismake=1,$aid,&$body) {
global $cfg_rewrite;
if($this->NowPage != $this->TotalPage) {
$lPage = $this->NowPage + 1;
if($ismake == 1) {
$body = preg_replace("/<(img|IMG)(.*)(src|SRC)=[\\\\"|'| ]{0,}((.*)>)/isU", "点击图片,进入下一页
" . "\\\\${0}" . "", $body);
} else {
$PageList = "" . "\\\\${0}" . "";
if($cfg_rewrite == 'Y') {
$PageList = str_replace(".php?aid=", "-", $PageList);
$PageList = preg_replace("/&pageno=(\\\\d+)/i", "-\\\\\\\\1.html", $PageList);
}
$body = preg_replace("/<(img|IMG)(.*)(src|SRC)=[\\\\"|'| ]{0,}((.*)>)/isU", $PageList, $body);
}
} else {
$body = preg_replace("/<(img|IMG)(.*)(src|SRC)=[\\\\"|'| ]{0,}((.*)>)/isU", $this->GetPreNext('imgnext'), $body);
}
return $body;
}
2. 查找以下代码:
$this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];
在其下方添加以下代码:
if($ClickPicNext){
$this->Fields[$this->SplitPageField]=$this->Fields[$this->SplitPageField];
}else{
$this->Fields[$this->SplitPageField]=$this->ClickPicNext($ismake,$this->Fields['id'],$this->Fields[$this->SplitPageField]);
}
3. 查找以下代码:
$this->PreNext['next'] = "下一篇:{$nextRow['title']} ";
在其下方添加以下代码:
$this->PreNext['imgnext'] ="".""\\\\${0}"."";
4. 查找以下代码:
$this->PreNext['next'] = "下一篇:没有了 ";
在其下方添加以下代码:
$this->PreNext['imgnext'] ="\\\\${0}";
5. 查找以下代码:
else if($gtype=='next')
{
$rs = $this->PreNext['next'];
}
在其下方添加以下代码:
else if($gtype=='imgnext')
{
$rs = $this->PreNext['imgnext'];
}
完成以上步骤后,您的 DedeCMS 图集将实现点击最后一页时自动跳转到下一篇图集的功能。这样不仅可以提升用户体验,还能让网站更加人性化。赶紧动手试试吧!