home.php mod follow,Discuz移动端二开之关注和粉丝页面以及关注状态处理

前期准备:解决PHP文件里边显示移动端页面在discuz中移动端是没有粉丝,关注页面的,那么就需要我们来开发。以下就是开发流程。

discuz中pc端是有收听和听众的功能。如下图home.php?mod=follow&do=follower这个地址就是对应的pc端的粉丝页面

42cb1f05e718d9f304cba0aadc3359af.png

然后我们可以追溯PHP文件source/module/home/home_follow.php的这个文件。在这个文件里,我们只需要注意到follower 和 following 这俩个名字。这俩个一个是关注的意思一个是粉丝的意思

5ff13740e8537b42bb14be6cd6fa35eb.png

然后根据discuz的访问机制我们去模板里找一下follow_follower.html这个文件。但是在模板里边我们发现使用follow开头的文件就这几个

19f0d39605991242287e68fbcaf8724a.png

继续来到文件source/module/home/home_follow.php然后拉到最后看加载的模板。这里可以看到加载的模板就是上边看到的follow_feed.html这个文件。

f606923400549e667f3d02f2f0a0c6fe.png那么我们就来到template/default/home/follow_feed.htm这个文件里边,大概是在554行左右可以看到很熟悉的俩个模块一个follower和following

6198a609d68a697a1aed770d6976c7ee.png

既然已经猜想是在这里了,那就写一个测试代码测试一下。

经过测试我们就已经确信无误了,这个页面就是加载的关注页面和粉丝页面。

2ff8b304790b62bf3716fec17a34e7ea.png

bcab8334ce6aca0d28beec5e243621be.png

在上面的测试会发现地址请求的是/home.php?mod=follow&do=follower,但是加载html文件却是template/default/home/follow_feed.htm。也就是说在dsicuz中如果需要加载跟请求地址不一致的文件,需要使用template函数来加载。

那么下面咱们自己写一个移动端follow_follower文件。

adfd051dc2cc29d9d031b13187413ab7.png

7fad5ed1bddc933b0f82b5169155ced4.png然后浏览器调整为手机访问模式即可

016a46e2df25abc939e328b7f4428231.png

以上就是二开关注页面和粉丝页面PHP如何加载开发粉丝页面和关注页面并实现数据接入在模板里边我们也可以这样写,判断do为follower时进入粉丝模板,为关注时进入关注模板

3948ec1b8569d922f8d154828d3da323.png

下图就是咔咔开发关注页面的效果

4901b80a1a8df329ee76a017de702784.png

那么页面写完了我们就需要实现数据对接了。继续回到template/default/home/follow_feed.htm这个文件。可以看到使用的数据是list,循环使用的是fuser这个变量

205422297d18eebe212582ee659b1f85.png实现关注显示与不显示打开discuz数据库字典,可以看到是否关注使用的是mutual这个字段

62520953fa5485a452ab7ff64d925185.png

根据mutual这个字段来控制关注与已关注的显示与不显示

当自己进入自己空间时在关注列表里边是全部显示已关注判断条件是 当$_G[uid] == $_GET[uid]时mutual>=0即可

当自己进入别人空间查看关注列表时 如果是自己关注的用户需要显示已关注否则显示关注即可这里的判断条件是$_G[uid] != $_GET[uid]时mutual==-1或者mutual==1即可。这里为什么会有一个mutual=-1的标识。数据库字典是没有这个标识的,但是实际测试出来的是有的,咔咔也看了源码是做了一个判断,先知道这么判断就行

在关注列表里边所有的链接地址都为home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2。所有的用户标识都是followuid即可

粉丝列表就很简单,直接使用-1和1判断即可

也就是说mutual这个字段的值为0 和1是只能判断自己在自己空间查看关注和粉丝列表时可以使用。如果是自己进入其他用户的粉丝和关注列表就会产生一个mutual的值为-1的一个字段

那也就是当自己进入其他用户有自己已经关注的用户时mutual的值就是-1实现代码// 粉丝模板

1422cc0e7f6f725ff46d65a8d69509cd.png

现在用户A,用户B,用户C

用户A关注了用户C

然后用户B进入到用户A空间的关注列表是可以看到用户C的

假如这个时候用户B已经关注了用户C,那么这个时候关注的按钮就是已关注,这个时候mutual的值就是-1(这种情况就是自己到别人的关注列表查看用户,如果有自己已经关注过的就会显示已关注,并且mutual的值为-1)

这个时候用户B在回到自己的用户空间查看关注列表就会显示用户C在自己的列表,但是这个时候mutual的值为0.但是当用户C也关注了用户B时mutual的值就是1

所以说用户当用户B在自己空间的关注列表查看使用mutual的值为0和1判断。当用户B去查看用户A的关注列表时使用mutual为-1和1来判断画图解释粉丝的逻辑处理

adec2d2f22bd73390e4f9690057fc253.png

现用用户A,用户B,用户C

当用户A关注了用户C时,用户C的粉丝列表就是有用户A

这个时候用户B访问用户C的粉丝列表就只有用户A, 这个时候用户A的关注状态也是未关注状态,并且mutual的是0

假如用户A也关注了用户B,用户B在用户C的粉丝列表里查看用户A的状态也是未关注状态并且mutual的值为0

但是当用户B关注了用户A后,这个时候用户B在用户C的粉丝列表查看用户A的状态就是已关注并且mutual的值为1表示互相关注

但是当用户A没有关注用户B

这个时候用户用户B在用户C的粉丝列表里边看到用户A的状态是未关注,当B把用户A关注后状态为已关注,mutual的值为-1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值