phpcms的评论改为留言板研究
研究背景:
phpcms里面默认是没有留言板的,之前我的博客里发过一个二次开发简介,里面有一个简单的留言板,包含前台提供表单,后台留言审核等功能,但是不提供用户登录等操作。
研究思路:
phpcms里面的评论功能就多了一些,而且后台还有设置是否允许游客评论。但是看源代码发现,评论是只能写在文章页的,也就是show_***.html页,因为文章的字段中有一个allow_comment,加上评论会存储文章id,所以这一点比较难改。
刚开始想着使用友言代替,友言的评论是直接和评论页的url绑在一起,所以也就不管你是文章还是单页面都可以调用,但是友言的用户管理有些欠缺,而且毕竟是第三方的,评论内容和用户也不容易拿到本地。
后来考虑的多说,多说在开发者方面支持的算比较好的,提供很多接口,和友言相比优势是可以自己研究用户和评论同步到本地,但它的评论缺也是和文章绑定的,而我只是想要一个类似留言板,可以登录用户的东西。所以暂时先放下。
研究结果:
结果有些坑,既然改源码难改,就按规矩来,把本应该放留言板的单页面当成改成一个内部栏目里面的一篇文章!这样就简单了,剩下的唯一的问题就是点击那个栏目直接跳到那篇文章了!
因为留言板栏目是有category页,list页和show页的,而前面已经说过评论是只能写在show页,访问内部栏目一般直接是跳到list页的,所以新建一个list,里面放入如下写死的代码:
<script> window.location.href="index.php?m=content&c=index&a=show&catid=11&id=22"; </script>
也就是直接跳到那篇名叫留言板的文章了!
下面贴一下评论的代码:
{if $allow_comment && module_exists('comment')} <iframe src="{APP_PATH}index.php?m=comment&c=index&a=init&commentid=bbs&iframe=1" width="100%" height="100%" id="comment_iframe" frameborder="0" scrolling="no"></iframe> <div class="box"> <h5>评论排行</h5> {pc:comment action="bang" siteid="$siteid" cache="3600"} <ul class="content list blue f14 row-2"> {loop $data $r} <li>·<a href="{$r[url]}" target="_blank">{str_cut($r[title], 40)}</a><span>({$r[total]})</span></li> {/loop} </ul> {/pc} </div> {/if}
其中那个评论排行可以那个box可以删掉,然后改一下评论的前台模板把支持反对的radio去掉,就更像一个留言板了!