这不是正常的情况吗?  

禁止 管理员下载  就无法下载

清空禁止列表 

就能下载

@mzlh001:回复 #2 对就是这个情况
 

@admin:回复 #1 @mzlh001
 你把 禁止管理员下载 取消,也就是里面什么都没有,你试试看还是不能下载,清空缓存无效,只能手动在数据库里把json那个板块对应的字段重新设置为null

@admin:回复 #1 @mzlh001
 而且不是因为你禁止了管理员的关系,你就是禁止其他用户组下载没有禁止管理员用户组,管理员用户组在这个板块也是无法下载,应该是代码有个判断错了


还有就是不光是禁止下载不行,就是连禁止其他用户组发帖或其他项在那个板块设置了。管理员也是不能下载,根本原因就是,json字段只要不是null,管理员在那个板块就会不能下载

@admin:回复 #1 @mzlh001
 清空哪里的缓存?是不是首页那个,我本地和服务器的都不行,我再实验一遍

@admin:回复 #1 @mzlh001

 我新安装了一个没任何插件的,依然是我说的情况

上传到百度云了

http://pan.baidu.com/s/1bo4OmOB

密码:sk87


@mzlh001:回复 #1 
 视频我看了   需要我晚上8点的时候 远程调试一下 

或者你可以现在打开 /Tmp/function.php 找到is_group_forum函数 

并在下面找到 $arr 变量 把它 var_dump($arr)  

然后浏览器开着F12 看着Network  点击下载附件

看看Network 返回的 数组内容

我直接输出了str字符串,里面只有一个1


此时我的数据表里是

QQ截图20160811140623.jpg

另外我发现,当我在

QQ截图20160811141044.jpg

这里禁止除了管理员组以外的用户组时,管理员用户组就可以下载了,而其他用户组不能下载。


其他用户返回的str是 2,3 ,与我后台禁止的用户组id是一样,没有了 1 


QQ截图20160811141504.jpg

刚刚丢人了,编辑一下,

还是我圈的那里,最后改为false就好了

$str = isset($json[$gn]) ? $json[$gn] : false ;
isset($json[$gn])如果为true则会返回$json[$gn]字符串,如果isset($json[$gn])为false,则返回false也就是0


应该这样写好一点

function is_group_forum($fid,$group,$gn,$forum){

  if(empty($forum[$fid]['json']))
    return true;
  $data = $forum[$fid]['json'];

  $json = json_decode($data,true);

  // 如果设置有,返回则 返回值 , 
  if(isset($json[$gn])){
    $str = $json[$gn];
    $arr = explode(",",$str);
    foreach ($arr as $v) {
      if($v == $group)
          return false;
    }
  }
  return true;
}


判断发帖和浏览的好像是is_comp的方法,所以只有下载才会这样