DEDECMS怎么实现添加全文阅读浏览效果

悟途网 2016年01月14日 22:24 阅读()
字号 (A- A+)

使用CMS模板建设网站的时候,发布文章时,有些文章过长,需要分成好几页来显示。

但是分页太多的话,会造成要点击数次才能看完,有些读者希望能够一页显示,在本页内看完不再分页。

需要更改dedecms后台代码来实现这个效果。

DEDECMS怎么实现添加全文阅读浏览效果

第一步:打开dedecms的代码后台,进入到include文件夹中。找到arc.archives.class.php文件,在修改文件前,先拷贝一份,以防达不到预期效果,代码无法恢复。

打开代码,找到

$this->Fields['userip'] = $this->addTableRow['userip'];代码处,添加下列代码:

$this->Fields['body2'] = $this->addTableRow['body'];//增加BODY全文阅读代码

该步骤自定义一个标签body2,并添加相关的处理函数。

第二步:对上面定义的body2标签进行处理,原理是去掉分页显示标记符,替换成指定字符串,生成新的页面。

找到代码处:$this->dsql->ExecuteNoneQuery("Update `dede_archives` SET ismake=1 WHERE id='".$this->ArcID."'");

在上一行添加body2的处理函数

//增加BODY全文阅读代码

if($this->TotalPage > 1) {

//用正则匹配把分页符去掉

$this->Fields['body2'] = preg_replace('/

/U', '',$this->Fields['body2']);

$this->SplitFields = explode("#p2222#",$this->Fields['body2']);

$this->Fields['tmptitle'] = (empty($this->Fields['tmptitle']) ? $this->Fields['title'] : $this->Fields['tmptitle']);

$this->Fields['title'] = $this->Fields['tmptitle'];

$this->TotalPage = count($this->SplitFields);

$this->Fields['totalpage'] = $this->TotalPage;

$TRUEfilenameall = $this->GetTruePath().$fileFirst."_all.".$this->ShortName;

$this->ParseDMFields(1,0);

$this->dtp->SaveTo($TRUEfilenameall);

if($cfg_remote_site=='Y' && $isremote == 1)

{

//分析远程文件路径

$remotefile = str_replace(DEDEROOT, '', $TRUEfilename);

$localfile = '..'.$remotefile;

//创建远程文件夹

$remotedir = preg_replace("#[^\/]*\.html#", '', $remotefile);

$this->ftp->rmkdir($remotedir);

$this->ftp->upload($localfile, $remotefile, 'ascii');

}

}

//增加BODY全文阅读代码

第三步:在分页处理函数中,添加“整页阅读”的标记链接。

函数 function GetPagebreak($totalPage, $nowPage, $aid)中

在return前添加代码,在DEDECMS 5.7版本,大概在1026行

$PageList.= "<li><a href='".$this->NameFirst."_all.".$this->ShortName."'>阅读全文</a></li>";//增加BODY全文阅读代码

把以上红色代码添加上去,一键更新网站和系统缓存,查看效果

您也可以点击编辑好的(点击下载

热门文章
随机推荐
DEDECMS删除文档同时文章中的图片的方法

DEDECMS删除文档同时文章中的

如何解决DEDECMS织梦系统在删除文档不同时文章中的图片...

怎么实现dedecms在首页登录会员功能

怎么实现dedecms在首页登录会

怎么实现dedecms在首页登录会员功能,登录后的显示内容...

实现更新DEDECMS文章时同时发布到新浪微博

实现更新DEDECMS文章时同时发

实现更新DEDECMS文章时同时发布到新浪微博,现在的微博...

怎么实现DEDECMS全站伪静态化的方法

怎么实现DEDECMS全站伪静态化

织梦DedeCms全站伪静态的实现方法,有相当一部分站长在...

实现dedecms5.7首页和列表页动态调用文章浏览次数

实现dedecms5.7首页和列表页动

在dedecms5.7首页和列表页模板中怎样动态调用文章浏览次...

DEDECMS标签tag显示每个tag相应的文章数量

DEDECMS标签tag显示每个tag相应

我们在进行织梦dedecms模板设计的时候,想实现类似于...

教你修改DEDECMS网站安全 移动或者更改data

教你修改DEDECMS网站安全 移

data目录路径更改在DedeCMS V5.7中用户也可以设定data目录...

DEDECMS的arclist循环中判断第一个li添加css

DEDECMS的arclist循环中判断第

dedecms的arclist循环中,判断如果是第一个li,则添加固定...