您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程

Discuz移动端二次开发关注和粉丝页面和关注状态处理方法

向珊2025-06-19Discuz教程已有人查阅

导读本文实现功能:开发移动端关注页面开发移动端粉丝页面实现从自己空间看见的关注列表都显示已关注实现自己看其他人关注列表时  自己关注的用户显示已关注

本文实现功能:开发移动端关注页面开发移动端粉丝页面实现从自己空间看见的关注列表都显示已关注实现自己看其他人关注列表时  自己关注的用户显示已关注,自己未关注的用户显示关注解决如何在PHP文件里边显示移动端页面
前期准备:解决PHP文件里边显示移动端页面
在discuz中移动端是没有粉丝,关注页面的,那么就需要我们来开发。以下就是开发流程。
discuz中pc端是有收听和听众的功能。如home.php?mod=follow&do=follower这个地址就是对应的pc端的粉丝页面
然后我们可以追溯PHP文件source/module/home/home_follow.php  的这个文件。在这个文件里,我们只需要注意到follower 和 following 这俩个名字。这俩个一个是关注的意思  一个是粉丝的意思
然后根据discuz的访问机制我们去模板里找一下follow_follower.html这个文件。但是在模板里边我们发现使用follow开头的文件就这几个
继续来到文件source/module/home/home_follow.php然后拉到最后看加载的模板。这里可以看到加载的模板就是上边看到的follow_feed.html这个文件。
那么我们就来到template/default/home/follow_feed.htm这个文件里边,大概是在554行左右可以看到很熟悉的俩个模块一个follower和following
既然已经猜想是在这里了,那就写一个测试代码测试一下。
经过测试我们就已经确信无误了,这个页面就是加载的关注页面和粉丝页面。
在上面的测试会发现地址请求的是/home.php?mod=follow&do=follower,但是加载html文件却是template/default/home/follow_feed.htm。也就是说在dsicuz中如果需要加载跟请求地址不一致的文件,需要使用template函数来加载。
那么下面咱们自己写一个移动端follow_follower文件。
然后浏览器调整为手机访问模式即可
以上就是二开关注页面和粉丝页面PHP如何加载
开发粉丝页面和关注页面并实现数据接入
在模板里边我们也可以这样写,判断do为follower时进入粉丝模板,为关注时进入关注模板
那么页面写完了我们就需要实现数据对接了。继续回到template/default/home/follow_feed.htm这个文件。可以看到使用的数据是list,循环使用的是fuser这个变量
实现关注显示与不显示
打开discuz数据库字典,可以看到是否关注使用的是mutual这个字段
根据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
// 粉丝模板
<p class="follow_manage">
<!--{if $fuser[mutual] == -1 || $fuser[mutual] == 1}-->
<a id="a_followmod_{$fuser['uid']}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['uid']&mobile=2" class="flw_btn_fo dialog">
<i class="iconfont  icon-like_fill rq"></i>
<font class="grey">已关注</font>
</a>
<!--{else}-->
<a id="a_followmod_{$fuser['uid']}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser['uid']&mobile=2" class="flw_btn_fo dialog">
<i class="iconfont icon-like"></i>
<font class="grey">关注</font>
</a>
<!--{/if}-->
</p>
// 关注列表模板
<p class="follow_manage">
<!--{if $_G[uid] != $_GET[uid]}-->
<!--{if $fuser[mutual] == -1 || $fuser[mutual] == 1}-->
<a id="a_followmod_{$fuser['followuid']}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2" class="flw_btn_fo dialog">
<i class="iconfont  icon-like_fill rq"></i>
<font class="grey">已关注</font>
</a>
<!--{else}-->
<a id="a_followmod_{$fuser['followuid']}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2" class="flw_btn_fo dialog">
<i class="iconfont icon-like"></i>
<font class="grey">关注</font>
</a>
<!--{/if}-->
<!--{else}-->
<!--{if $fuser[mutual] == 0 || $fuser[mutual] == 1}-->
<a id="a_followmod_{$fuser['followuid']}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2" class="flw_btn_fo dialog">
<i class="iconfont  icon-like_fill rq"></i>
<font class="grey">已关注</font>
</a>
<!--{else}-->
<a id="a_followmod_{$fuser['followuid']}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2" class="flw_btn_fo dialog">
<i class="iconfont icon-like"></i>
<font class="grey">关注</font>
</a>
<!--{/if}-->
<!--{/if}-->
</p>
画图解释用户关注的逻辑处理
现在用户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来判断
画图解释粉丝的逻辑处理
现用用户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
所以粉丝列表里边判断只有当mutual的值为-1或者1时是关注状态,其余都是未关注状态

本文标签:

很赞哦! ()

相关源码

  • (PC+WAP)门窗门业家居定制铝合金产品pbootcms模板下载基于PbootCMS内核开发的门窗门业企业专用模板,采用响应式设计结构,数据一次录入即可同步适配电脑与手机端浏览。通过简洁大气的视觉呈现,帮助门窗企业快速建立专业线上展示平台,有效传递产品价值与服务优势。查看源码
  • (自适应响应式)房产合同知识产权企业管理pbootcms模板下载本模板基于PbootCMS系统开发,为知识产权服务、法律咨询及企业合同管理等行业设计。采用严谨专业的布局风格,突出法律文书与知识产权服务行业特色,适合展示各类法律服务和知识产权相关内容。查看源码
  • (自适应响应式)英文外贸医疗科研耗材设备pbootcms网站模板为医疗设备和外贸企业设计的响应式网站模板,基于PbootCMS系统开发。突出医疗产品认证展示和国际化特性,通过专业化的产品参数展示模块和文档管理系统,满足医疗行业严格的信息披露要求。查看源码
  • (自适应)宽屏大气红色机械设备pbootcms模板源码下载为机械设备制造企业设计的响应式网站模板,采用PbootCMS内核开发。宽屏布局突出设备展示效果,红色工业风格贴合机械行业属性,支持PC端与手机端自动适配查看源码
  • (自适应)响应式文章博客互联网新闻pbootcms模板下载本模板基于PbootCMS开发,专为科技新闻、互联网资讯和文章博客类网站设计。采用响应式布局技术,确保在电脑、平板和手机上都能获得最佳浏览体验。适用于科技媒体、行业博客查看源码
  • 帝国cms7.5女性护肤搭配美妆潮流网站源码带数据4.5G本模板专为女性美容护肤行业设计,提供美容护肤、发型设计、女性健康、时尚化妆、娱乐新闻、服饰搭配等女性潮流资讯内容展示。采用帝国CMS7.5开发,同步生成电脑端和手机端,满足用户对美容时尚信息的获取需求。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐