最近用 Discuz X3.2 搭建了个论坛,在测试过程中发现“完善用户资料”这个官方自带的任务有个Bug,将所有的资料都填写完成后,任务仍然无法完成,而且没有明确提示有哪些项目没有填写。
到官方论坛去寻求解决方案,没有找到一个明确的答复,很多人遇到这样的问题,或者标明了已解决却没有提供解决方案,结合度娘给出的一些知识,最终自己摸索出了两种方法。
方案一:
“后台→用户→用户栏目→栏目列表”中将真实姓名选中,并选中在资料页中显示;
“后台→用户→用户栏目→栏目分组”中将真实姓名选中,使用户可以填写。
方案二:
sourceclass ask ask_profile.php 路径中将第43及44行
$fields = array('realname', 'gender', 'birthyear', 'birthmonth', 'birthday', 'bloodtype', 'affectivestatus', 'birthprovince','birthcity', 'resideprovince', 'residecity');
去掉真实姓名,更改为:
$fields = array('gender', 'birthyear', 'birthmonth', 'birthday', 'bloodtype', 'affectivestatus', 'birthprovince','birthcity', 'resideprovince', 'residecity');
任务完成,点击“领取奖励”即可。
说明:Discuz官方默认将真实姓名、性别、情感状况等信息作为基本资料,但是很多情况下是不需要都填写的,因此有的站长将其隐藏,造成用户无法填写,因而无法完成任务。
方案一是开启所对应的项目供用户填写,满足任务完成条件即可完成任务。
方案二是修改任务文件,使其只检测站长所需要用户填写的资料,满足条件便完成任务。
方案一的好处是直接在后台便可以完成,不用修改源文件,风险小。
方案二可以根据站长的要求自定义需要填写的项目,每个字段的名称可以通过查看用户栏目页面对应每个条目的 name 属性获得。相信对于站长而言,查看源码应该没有什么问题的吧。
个人觉得方案二更彻底有效。