开发项目与Discuz论坛融合,由于论坛注册需要用户名,项目中注册使用手机号作为登录名,为了做到账户统一,做了BBS同步注册和登录。BBS这边为了保护用户的隐私我安全性,所以这边找了半天解决方案,最终在两个插件的基础上实现了BBS的昵称显示。
412e1458223801.jpg

用到的两个插件分别是 论坛昵称插件2.5-3.1(qqy_ltnc)和 信息完善插件免费版(iplus_profile)。安装之后的界面预览一下:
9e771458221997.jpg

这个是论坛昵称设置的界面,选择可以设置昵称的用户组,我们这边设置用户只能设置一次昵称(昵称不能重复的)。
50b41458222083.jpg

这是用户完善信息插件设置界面,也是可以设置必须完善信息的用户组。由于是免费的这个时间提醒是不能用的。
安装好之后,我们看一下前台用户中心:
9a6c1458222281.jpg
4b601458222281.jpg

用户中心多了一个昵称栏目,点进去之后是我设置好的,没有设置之前是一个简单的输入框,会检测你的昵称是否被使用。
下一步就是说一下修改插件代码了。


由于 完善个人信息 插件只能设置 用户附加信息的选择,也就是论坛自带的会员真实姓名、性别等那个用户栏目表的信息,而我们需要操作的是会员表(common_member),我是怎么知道要修改这个会员表(common_member)的呢,因为我看了 会员昵称 插件的安装和卸载源文件。

会员昵称插件安装文件内容:
carbon.png

会员昵称插件卸载文件内容:
carbon.png

在这边表(common_member)中增加(删除) addname 字段。

由此我们可以看出两个插件操作的表不一样。
再来看一下 会员信息完善 插件源文件: 会员信息是否完善判断方法
carbon.png

$ncflag = DB::result_first("SELECT addname FROM " . DB::table('common_member') . " WHERE uid=".$_G['uid'] ); 这一句就是我们根据用户ID读common_member表用户的昵称是否为空。
下一个判断就是我们加上去的:
1312.png

由于这个插件我只是为了更好的判断昵称是否要填写,也就是有一个优先级在这里面,所以把其他的放在了else里面。

最后修改:2020 年 11 月 22 日 09 : 13 PM
如果觉得我的文章对你有用,请随意赞赏