phpcms v9系统里,如果某个文章设定不允许评论,那么,你打开文章,是看不到评论的。但它只是从模板显示上不显示而已。如果你直接打开评论网址,仍然能显示评论,也能提交评论。或者你不打开评论页面,通过将其它文章的评论网址,改个参数,将那个评论的文章ID号为这个文章的ID号,则仍然能提交对该文的评论。也就是说,并没有从控制器上禁止提交评论。
解决办法,就是在提交评论时,增加对是否允许评论的判断。如果不允许,则不准提交。
直接上代码。在modules\comment\index.php文件的 public function post() 函数89行处
//通过API接口调用数据的标题、URL地址
if (!$data = get_comment_api($this->commentid)) {
$this->_show_msg(L('illegal_parameters'));
} else {
$title = $data['title'];
$url = $data['url'];
unset($data);
}
在89行处增加判断,最后变成:
//通过API接口调用数据的标题、URL地址
if (!$data = get_comment_api($this->commentid)) {
$this->_show_msg(L('illegal_parameters'));
} else {
$title = $data['title'];
$url = $data['url'];
unset($data);
if (isset($data['allow_comment']) && empty($data['allow_comment'])) {
showmessage(L('canot_allow_comment'));
}
}