点击登录
  • 欢迎访问无限星辰技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏无限星辰吧
  • 好集导航开张了,传送门:好集导航

【完美解决】帖子内个人资料(如性别、QQ)项不显示的问题分析,性别不显示的问题

Discuz!问题集 crx349 7997次浏览 0个评论 扫描二维码

今日有用户反应设置了QQ在帖子里显示,但是帖子仍不显示的问题。
排查后特给出具体的分析。
后台设置QQ项的隐私,如图:
【完美解决】帖子内个人资料(如性别、QQ)项不显示的问题分析,性别不显示的问题
在source\admincp\admincp_setting.php文件中的处理有如下代码:

foreach($settingnew[‘customauthorinfo’] as $field => $v) {
if(substr($field, 0, 6) == ‘field_’ && ($v[‘menu’] || $v[‘left’])) {
//如果$field前6个字符等于field_(即个人资料里的设置),同时此设置在头像菜单里显示($v[‘menu’])或者在贴内左侧($v[‘left’])显示
$showinthreadfields[] = substr($field, 6);
//substr($field, 6)为field_后面的值,如QQ的key值为field_qq,则substr($field, 6)为qq
//将满足条件的值添加到数组$showinthreadfields中
}
}
//中间代码省略
if($showinthreadfields) {
DB::update(‘common_member_profile_setting’, array(‘showinthread’ => 1), “fieldid IN (“.dimplode($showinthreadfields).”)”);
//将在$showinthreadfields中的相应项在common_member_profile_setting表中的showinthread字段置为1
}

从这段代码可以看出,QQ选项在common_member_profile_setting表中的showinthread字段被置为了1.
下面分析在家园设置QQ选项时的处理:
找到template\default\home\spacecp_profile.htm文件

<!–{if $value[showinthread] || $vid}–>
<input name=”privacy[$key]” value=”3″ type=”hidden”>
<!–{else}–>
<select name=”privacy[$key]”>
<option selected=”selected” value=”0″ if}=”” {=”” ?0?}=”” $privacy[$key]=”=” {if=””>{lang open_privacy}</option>
<option selected=”selected” value=”1″ if}=”” {=”” $privacy[$key]=”=” {if=”” ?1?}=””>{lang friend_privacy}</option>
<option selected=”selected” value=”3″ if}=”” {=”” $privacy[$key]=”=” {if=”” ?3?}=””>{lang secrecy}</option>
</select>

<!–{/if}–>

从这里可以看出,如果$value[showinthread]存在,则此项的隐私类型privacy[$key]直接被置为了3(value=”3″)。
privacy[$key]值的代表意义:
0:公开
1:好友可见
3:保密
这里会导致存入到common_member_home_field表中的关于此项设置(QQ)的隐私设置为3,即保密。
不明白此处为何有一处这样的判断,不知道当初是如何设计的。
因此处导致该会员关于QQ的隐私设置为保密,进而会导致前台帖子内无法显示。
因为隐私项是不显示的,具体见source\module\forum\forum_viewthread.php文件中的代码:

if(!empty($post[‘privacy’][‘profile’][$field])) {
continue;
}


无限星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明【完美解决】帖子内个人资料(如性别、QQ)项不显示的问题分析,性别不显示的问题!
喜欢 (0)
[]
分享 (0)

您必须 登录 才能发表评论!