|
修改Discuz游客不用登录就可以点支持、反对来评价主题
1、在后台开启主题评价功能(【全局】》【站点功能】》【主题评价】)
2、修改数据库,默认游客是不能评价的,后台也没法设置,改数据库吧,在“pre_common_usergroup_field”表里groupid为7的数据就是游客对应的一系列参数,然后修改“allowrecommend”字段值为1,这样数据库部分就OK了
3、再来改程序吧,打开source\module\forum目录下的forum_misc.php文件,
找到- $_GET['action'] == 'recommend'
复制代码
这句,然后往下两行有个
- if(empty($_G['uid'])) {
- showmessage('to_login', null, array(), array('showmsg' => true, 'login' => 1));
- }
复制代码
把他注释掉,这个是判断用户ID的,游客默认的为0,所以会让你登录,注释掉就OK了
再往下找到
- if(C::t('forum_memberrecommend')->fetch_by_recommenduid_tid($_G['uid'], $_G['tid'])) {
- showmessage('recommend_duplicate', '', array('recommendc' => $thread['recommends']), array('msgtype' => 3));
- }
复制代码
然后把他替换为
- if(!empty($_G['uid'])){
- if(C::t('forum_memberrecommend')->fetch_by_recommenduid_tid($_G['uid'], $_G['tid'])) {
- showmessage('recommend_duplicate', '', array('recommendc' => $thread['recommends']), array('msgtype' => 3));
- }
- }else{
- if(!empty($_G['cookie']['yourecommend'])){
- showmessage('recommend_duplicate', '', array('recommendc' => $thread['recommends']), array('msgtype' => 3));
- }
- dsetcookie('yourecommend', '1', '43200');
- }
复制代码
因为DZ默认一个帖子用户只能评论一次,所以相对于不同的游客来说就不太合适,先判断是否是游客,不是游客就执行DZ默认的,是游客根据cookie判断他是否评论过,这样程序部分也基本OK
4、最后就是改模板,我用的是默认模板,在template\default\forum文件夹里找到“viewthread_node.htm”、“viewthread_portal.htm”、“viewthread_album.htm”,打开搜索
字符,然后他前面的
和后面的
删掉,一共有两处,由于对DZ不熟,所以三个文件我都删了再后台更新下缓存即可
|
|