现版本discuz的门户功能虽然相比起专业的CMS系统还有一定的差距,但也已具备了比较完善的文章管理系统。那么,在discuz中如何开启例如wordpress中的游客评论功能呢? 其实也很简单,discuz本身就已经配有游客用户组,只需要我们到 管理后台设置一下相应的权限即可,但要让游客在评论的时候能输入昵称就需要我们稍微修改一下源代码了。

discuz开启游客评论
1、进入后台,用户--用户组--系统用户组--游客--编辑

2、门户相关--文章评论字数(设置此用户组发表文章评论字数限制,设置为0将禁止此用户组发表评论)

通过以上两步,已开启了discuz文章游客评论的功能,下面我们为游客评论添加昵称输入的功能。

disucz游客评论输入昵称

1、模板文件修改(以下修改皆以默认模板文件作为参照,如你使用自己的模板,请对应修改相应的内容即可)

在template/default/portal/comment.htm文件中找到



在该行下面加入

                                    用户名:  *

邮 箱: *

网 址: 注意加上“http://”哦!



再在template/default/portal/portal_comment.htm文件中找到



在该行下同样加入上面的代码。

以下设置评论显示里显示游客输入的昵称

在文件template/default/portal/comment_li.htm中找到以下代码

$message = censor($message);if(censormod($message)) {	$comment_status = 1;} else {	$comment_status = 0;}


把这几行代码修改成:

$comment['username']  {lang guest}


2、修改PHP保存评论功能

在文件source/function/function_portalcp.php中找到

$message = censor($message);if(censormod($message)) {    $comment_status = 1;} else {    $comment_status = 0;}


在这几行代码下面加入以下代码即可
        //为游客评论增加昵称输入        $username = $_G['username'];        if(isset($_POST['guestname'])){                $username = addslashes(trim($_POST['guestname']));        }          if(!$_POST['guestname']){            showmessage('请填写您的昵称');        }        if(isset($_POST['url'])){                $url = addslashes(trim($_POST['url']));        }        if(isset($_POST['email'])){                $email = addslashes(trim($_POST['email']));        }        if(!$_POST['email']){            showmessage('请填写您的邮箱');        }		//记录cookie		dsetcookie('php2_username', $username, 86400*30);		dsetcookie('php2_url', $url, 86400*30);		dsetcookie('php2_email', $email, 86400*30);

找到代码:
$setarr = array(		'uid' => $_G['uid'],		'username' => $username,		'id' => $id,		'idtype' => $idtype,		'postip' => $_G['clientip'],		'port' => $_G['remoteport'],		'dateline' => $_G['timestamp'],		'status' => $comment_status,		'message' => $message	);

修改成:
$setarr = array(		'uid' => $_G['uid'],		'username' => $username,                'url' => $url,                'email' => $email,		'id' => $id,		'idtype' => $idtype,		'postip' => $_G['clientip'],		'port' => $_G['remoteport'],		'dateline' => $_G['timestamp'],		'status' => $comment_status,		'message' => $message	);


然后打开数据库,找到表:pre_portal_comment

增加两个字段:url、email,字段类型为:varchar,长度设置成100即可。

到此为止,已经全部完成了,具体效果请参考PHP二次开发的文章评论功能,当然你可以为游客的评论设置各种的权限,防止乱发广告的现象,这些都可以在后台的用户组中进行设置。