原始短消息: 谢谢你的指导,又让我学习了不少东西!
首先谢谢你的指导,又让我学习了不少东西!
我仔细研究了你在42楼发的代码,有个别地方不太明白,你有时间的话能不能帮我解答一下!
- $sendcmentspm = 1; //发送PM提醒请设置为1,不发送请设置0
复制代码
我在发表评语的界面有是否发短信的选择,所以,这个就不需要了,不过提醒了我,是不是把是否能重复评语的开关加上!
- ($action == 'cments' && $pid) {// 这里tid判断给我去掉了,不需要
复制代码
这个tid不要也没有影响,但是如果传过来的没有tid,当时程序就能退出,不用等判断到查询posts表时才退出,所以是不是加上好呢!
- if(!$forum['ismoderator']) {// 这里原本的有点问题,如果adminid不是3的就不会显示,安全隐患
- showmessage('对不起,您只能在自己的管辖范围内发表评语,请返回。');
- }
复制代码
我一直不太明白$raterange $modratelimit $adminid $forum['ismoderator']都代表什么意思,只是觉得和权限有关,所以一直保持和‘评分’功能一直,不知道,你能不能帮我解释一下!
- //这里不是8种积分,只需要1种就可以了,不必foreach所以可以直接写进下面执行语句
- $db->query("INSERT INTO {$tablepre}cments (pid, tid, uid, username, dateline, cments) VALUES ('$pid', $tid, '$discuz_uid', '$discuz_user', '$timestamp', '$sqlreason')", 'UNBUFFERED');
复制代码
这个简化了不少,原来可以合为一处!原先我还傻呵呵保持原样!谢谢!
- //这里因为在其他程序删除的不够彻底,所以我在这里加了一句删除语句
- $db->query("DELETE FROM {$tablepre}cments WHERE pid='$pid'");
复制代码
加这个删除语句是不是怕在后台删除帖子时漏下cments表阿? 要不然应该不会有遗漏吧?
- //下面这个判断有点问题,自己检查下吧
- //if(!$bannedmessages || !$post['authorid'] || ($bannedmessages && $post['authorid'] && !in_array(intval($author['groupid']), array(0, 4, 5)))) {
- require_once DISCUZ_ROOT.'./include/discuzcode.func.php';
- $post['dateline'] = gmdate("$dateformat $timeformat", $post['dateline'] + $timeoffset * 3600);
- $post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'], $forum['allowsmilies'], $forum['allowbbcode'], $forum['allowimgcode'], $forum['allowhtml'], $forum['jammer']);
- //} else {
- //$post['message'] = '';
- //}
复制代码
这段最不明白了!
这段我只知道时显示帖子内容的,如果权限或者说条件达不到,就显示为空!
你能不能告诉我
- !in_array(intval($author['groupid']), array(0, 4, 5)))
复制代码
是判断什么的!
我只知道$bannedmessages是指帖子属于被屏蔽内容! (不太确定)
$post['authorid']是指帖子作者uid!
再次感谢!不知道可不可以加QQ 43704524
1.对呃,我没有看过模板不知道,不好意思了.
2.tid我在上面改过了,其实我改的东西不止注释出来的那么多,上面有检测是否有此tid,没有则显示没有此帖(因为在common内已经处理过了,所以不必再次查询,改进了一下在没有此tid的时候节约一个查询),修改的地方就是上面的empty($tid)的地方.
3.
$raterange是否允许评分
$modratelimit版主在自己版块的评分
$adminid管理权限号
$forum['ismoderator']本版块的版主或超级版主或管理员
4.加上- $db->query("DELETE FROM {$tablepre}cments WHERE pid='$pid'");
复制代码 是因为其他地方清除得不够干净,完善之后可去掉.
5.- !in_array(intval($author['groupid']), array(0, 4, 5)))
复制代码 这是DZ的BUG,我想这个应该是$post['groupid']吧
6.$bannedmessages是开关,是否隐藏敏感帖子内容的开关.在评论不需要用到吧,毕竟只是评论不涉及内容.(个人感觉) |