现版本discuz的门户功能虽然相比起专业的CMS系统还有一定的差距,但也已具备了比较完善的文章管理系统。那么,在discuz中如何开启例如wordpress中的游客评论功能呢? 其实也很简单,discuz本身就已经配有游客用户组,只需要我们到 管理后台设置一下相应的权限即可,但要让游客在评论的时候能输入昵称就需要我们稍微修改一下源代码了。
1、进入后台,用户--用户组--系统用户组--游客--编辑
2、门户相关--文章评论字数(设置此用户组发表文章评论字数限制,设置为0将禁止此用户组发表评论)
通过以上两步,已开启了discuz文章游客评论的功能,下面我们为游客评论添加昵称输入的功能。
1、模板文件修改(以下修改皆以默认模板文件作为参照,如你使用自己的模板,请对应修改相应的内容即可)
在template/default/portal/comment.htm文件中找到
<form id="cform" name="cform" action="portal.php?mod=portalcp&ac=comment" method="post" autocomplete="off">
在该行下面加入
<div class="mytxt"> <input type="text" name="guestname" class="vm"> 作为游客发表评论,请输入您的昵称</div>
再在template/default/portal/portal_comment.htm文件中找到
<form id="cform" name="cform" action="$form_url" method="post" autocomplete="off">
在该行下同样加入上面的代码。
以下设置评论显示里显示游客输入的昵称
在文件template/default/portal/comment_li.htm中找到以下代码
<!--{if !empty($comment['uid'])}--><a href="home.php?mod=space&uid=$comment[uid]" class="xi2 xw1" c="1">$comment[username]</a><!--{else}-->{lang guest}<!--{/if}-->
把这几行代码修改成:
<!--{if !empty($comment['uid'])}--><a href="home.php?mod=space&uid=$comment[uid]" class="xi2 xw1" c="1">$comment[username]</a><!--{elseif !empty($comment['username'])}-->$comment['username']<!--{else}-->{lang guest}<!--{/if}-->
2、修改PHP保存评论功能,只需要修改一处即可,是不是很简单~_~
在文件source/function/function_portalcp.php中找到
$message = censor($message);if(censormod($message)) { $comment_status = 1;} else { $comment_status = 0;}
在这几行代码下面加入以下代码即可
//为游客评论增加昵称输入$username = $_G['username'];if(empty($username) && isset($_POST['guestname'])){ $username = addslashes(trim($_POST['guestname']));}
效果如下图所示:
到此为止,已经全部完成了,具体效果请参考本站的文章评论功能,当然你可以为游客的评论设置各种的权限,防止乱发广告的现象,这些都可以在后台的用户组中进行设置。