欢迎来到覃师宁博客!
帝国cms使用手册

帝国cms模板开发教程(十二):帝国cms评论页面模板开发

编辑:覃师宁来源:qinshining.com时间:2020-11-25 20:36:56阅读量:

帝国cms评论页面模板也就是评论列表页,在帝国cms后台--模板--模板管理、可以找到单独的评论列表模板、但是在制作内容页模板的时候,我们需要在内容页模板调用评论列表和评论框,那么如何操作呢

这里推荐的方法是,官方给出的评论插件

下载地址:http://bbs.phome.net/ShowThread/?threadid=196576&forumid=31

根据官方教程下载调用即可

但是在写完这套帝国教程之后,有网友@反馈说,使用官方插件内容页是JS调用,JS调用换句话说就是右键查看网页源代码,查看不到网友评论的内容,这样不利于搜索引擎优化

问能不能改成代码输出,也就是在网页源代码直接可以查看到评论内容

针对这部分网友的需求,我使用搜索引擎包含百度、谷歌、必应搜索了一圈,发现互联网有类似的评论插件,不过收费插件要价少则一百多、多则两百多,本着能省则省的原则,自己简单的写一个内容评论插件调用

使用的是官方提供的showplinfo标签、不过使用showplinfo标签在内容页调用,还是遇到很多问题

问题一、showplinfo标签模板的写法

[showplinfo]调用条数,标签模板ID,栏目ID,信息ID,显示推荐评论,操作类型[/showplinfo]

从官方给出的showplinfo调用写法,可以知道,showplinfo标签是需要标签模板的支持,也就是说我们需要新建一个标签模板

这个标签模板的增加可以查看文章:《帝国cms如何增加标签模板

整个showplinfo标签模板的写法,重点是列表内容模板(list.var) (*)的写法

也就是评论列表常用评论标签的的调用

比如:[!--username--]、[!--pltime--]、[!--pltext--]、

具体支持哪些标签,可以参照官方使用手册、第九点评论模板的制作

http://www.phome.net/doc/manual/template/

这里就不做代码分享,因为前期有部分网友付费购买了课程相关内容,不做免费分享也是对他们负责

问题二、增加评论用户网站链接

也就是需要在帝国后台管理评论处增加自定义评论字段,比如ulink字段,这个字段就是用户可以在评论的时候输入网址作为网站外链的需要

增加了自定义评论字段,对此就需要修改对应的文件才能支持自定义字段的调用,这里详细写好哪个程序,修改什么内容

修改/e/class/t_functions.php
        
查找:
        
$sql=$empire->query("select plid,userid,username,saytime,id,classid,zcnum,fdnum,saytext from {$dbtbpre}enewspl_".$public_r['pldeftb']." where checked=0".$a." order by ".$order." limit ".$line);
        
 修改:
        
$sql=$empire->query("select * from {$dbtbpre}enewspl_".$public_r['pldeftb']." where checked=0".$a." order by ".$order." limit ".$line);
        
再查找:
        
$listtemp=str_replace("[!--fdnum--]",$r['fdnum'],$listtemp);
        
下方添加:
        
 $listtemp=str_replace("[!--ulink--]",$r['ulink'],$listtemp);
        
 这样评论自定义字段就可以正常调用了
        
实现了评论自定义字段的调用后,我原本想写一个判断如果网站地址ulink字段为空则输出评论用户名不加链接,反之网站地址ulink字段不为空,则评论用户名添加a链接,但是发现纯php判断不起作用,又要返回列表内容模板(list.var) (*)使用勾选使用程序代码的写法,觉得太麻烦了,实在是没时间重新再写逻辑判断,后面改成直接输出,类似论坛外链文字的形式,而不是锚文本的形式展现,有情兴趣的朋友再自行研究逻辑判断写法吧

问题三、内容页调用showplinfo标签

具体大家根据自己创建标签模板id修改

[showplinfo]调用条数,15,$navinfor[classid],$navinfor[id],显示推荐评论,操作类型[/showplinfo]

问题四、帝国CMS实现提交评论后自动重新生成内容页的方法

这个,这个直接百度搜索,可以找到答案

问题五、评论顶和踩、回复楼层功能

实现代码如下

<a href="#tosaypl" onclick="javascript:document.saypl.saytext.value='';document.saypl.repid.value='[!--plid--]';document.saypl.saytext.focus();">回复</a>

<a href="JavaScript:makeRequest('[!--news.url--]e/pl/doaction.php?enews=DoForPl&plid=[!--plid--]&classid=[!--classid--]&id=[!--id--]&dopl=1&doajax=1&ajaxarea=zcpldiv[!--plid--]','EchoReturnedText','GET','');">支持</a><span id="zcpldiv[!--plid--]">[[!--zcnum--]]</span>&nbsp;

<a href="JavaScript:makeRequest('[!--news.url--]e/pl/doaction.php?enews=DoForPl&plid=[!--plid--]&classid=[!--classid--]&id=[!--id--]&dopl=0&doajax=1&ajaxarea=fdpldiv[!--plid--]','EchoReturnedText','GET','');">反对</a><span id="fdpldiv[!--plid--]">[[!--fdnum--]]</span>

代码完整,功能可用,     

不足点1、回复功能没有实现回复楼层单独弹窗输入

不足点2、支持/反对功能、点击可以正常提交但是刷新页面不显示、也就是需要重新生成页面才能够显示正常支持/反对数、这个问题是静态页面才会出现,如果你网站内容页是动态调用则会马上显示、原本也想改程序,但是没有时间研究,有兴趣朋友自行研究代码

问题六、楼层显示

这个可以用php写、也可以用js写、也可以用css写第一个li,然后使用content结合before功能显示,我博客用不到就没写

问题七、如何显示评论者ip

 

很赞哦!(

相关文章

发表评论共有条评论
用户名:密码:
验证码:匿名发表

更多回答

网创邦微信公众号