在使用Dedecms进行内容管理时,实现文章点击图片自动进入下一页的功能是一项非常实用的优化措施。本文将详细介绍如何通过修改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=0)
{
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\\\\\\"|'| ]{0,}((.*)>/isU","点击图片,进入下一页
".$this->NameFirst."_".$lPage.".".$this->ShortName."",$body);
}
else
{
//对于生成静态页面的情况下使用
$PageList="\\\\${0}";
//对于动态页情况下使用,我这里用的是静态,于是将下面这行代码注释,如果您的是动态页面的话,则将上面那行代码注释,使用下面这行即可。
//$PageList="\\\\${0}";
if($cfg_rewrite == 'Y')
{
$PageList = str_replace(".php?aid=","-",$PageList);
$PageList = preg_replace("/&pageno=(\\\\d+)/i",'-.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'];
}
完成以上所有步骤后,保存文件并重新生成文章即可实现点击图片自动进入下一页的功能。
通过上述修改,您可以显著提升用户体验,使浏览更加流畅。希望这篇文章能帮助到您!