请选择 进入手机版 | 继续访问电脑版
4006-018-018
快捷导航

[网页代码] 怎么让Discuz游客可以进行支持、反对来评价主题

0
回复
254
查看
[复制链接]

99

主题

101

帖子

404

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
404
发表于 2020-11-23 23:06:47 | 显示全部楼层 |阅读模式
 
修改Discuz游客不用登录就可以点支持、反对来评价主题

1、在后台开启主题评价功能(【全局】》【站点功能】》【主题评价】)

2、修改数据库,默认游客是不能评价的,后台也没法设置,改数据库吧,在“pre_common_usergroup_field”表里groupid为7的数据就是游客对应的一系列参数,然后修改“allowrecommend”字段值为1,这样数据库部分就OK了

3、再来改程序吧,打开source\module\forum目录下的forum_misc.php文件,
找到
  1. $_GET['action'] == 'recommend'
复制代码


这句,然后往下两行有个
  1. if(empty($_G['uid'])) {
  2. showmessage('to_login', null, array(), array('showmsg' => true, 'login' => 1));
  3. }
复制代码


把他注释掉,这个是判断用户ID的,游客默认的为0,所以会让你登录,注释掉就OK了
再往下找到
  1. if(C::t('forum_memberrecommend')->fetch_by_recommenduid_tid($_G['uid'], $_G['tid'])) {
  2. showmessage('recommend_duplicate', '', array('recommendc' => $thread['recommends']), array('msgtype' => 3));
  3. }
复制代码


然后把他替换为
  1. if(!empty($_G['uid'])){
  2. if(C::t('forum_memberrecommend')->fetch_by_recommenduid_tid($_G['uid'], $_G['tid'])) {
  3. showmessage('recommend_duplicate', '', array('recommendc' => $thread['recommends']), array('msgtype' => 3));
  4. }
  5. }else{
  6. if(!empty($_G['cookie']['yourecommend'])){
  7. showmessage('recommend_duplicate', '', array('recommendc' => $thread['recommends']), array('msgtype' => 3));
  8. }
  9. dsetcookie('yourecommend', '1', '43200');
  10. }
复制代码


因为DZ默认一个帖子用户只能评论一次,所以相对于不同的游客来说就不太合适,先判断是否是游客,不是游客就执行DZ默认的,是游客根据cookie判断他是否评论过,这样程序部分也基本OK

4、最后就是改模板,我用的是默认模板,在template\default\forum文件夹里找到“viewthread_node.htm”、“viewthread_portal.htm”、“viewthread_album.htm”,打开搜索

  1. recommendupdate
复制代码



字符,然后他前面的
  1. {if $_G['uid']}
复制代码


和后面的
  1. {else}{/if}
复制代码


删掉,一共有两处,由于对DZ不熟,所以三个文件我都删了再后台更新下缓存即可



标签:discuz
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们:国际模特网

官方微信

APP下载

全国服务热线:

4000-018-018

公司地址:上海市嘉定区银翔路655号B区1068室

运营中心:成都市锦江区东华正街42号广电仕百达国际大厦25楼

邮编:610066 Email:mail@yidai.com

Copyright   ©2015-2016  网址大全  Powered by©Discuz!  技术支持:迪恩网络     ( 粤ICP备18158688号 导航门户网 云计算导航 )