Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

发布时间:2020-08-07 11:03:09 作者:Leah
来源:亿速云 阅读:226

这篇文章将为大家详细讲解有关Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

本文实现功能:

  1. 开发移动端关注页面

  2. 开发移动端粉丝页面

  3. 实现从自己空间看见的关注列表都显示已关注

  4. 实现自己看其他人关注列表时  自己关注的用户显示已关注  自己未关注的用户显示关注

  5. 解决如何在PHP文件里边显示移动端页面

前期准备:解决PHP文件里边显示移动端页面

在discuz中移动端是没有粉丝,关注页面的,那么就需要我们来开发。以下就是开发流程。

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

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

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

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

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

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

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

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理那么我们就来到template/default/home/follow_feed.htm这个文件里边,大概是在554行左右可以看到很熟悉的俩个模块一个follower和following

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

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

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

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

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

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

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理然后浏览器调整为手机访问模式即可

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

以上就是二开关注页面和粉丝页面PHP如何加载

开发粉丝页面和关注页面并实现数据接入

在模板里边我们也可以这样写,判断do为follower时进入粉丝模板,为关注时进入关注模板Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

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

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

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

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

实现关注显示与不显示

打开discuz数据库字典,可以看到是否关注使用的是mutual这个字段Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

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

实现代码

// 粉丝模板
<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>

画图解释用户关注的逻辑处理

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

画图解释粉丝的逻辑处理

Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理

关于Discuz如何实现移动端二开之关注和粉丝页面以及关注状态处理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. 关注你所关注的 - Golang社区调研报告
  2. 数据库关注

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

discuz

上一篇:python中写ssh登录的方法

下一篇:如何解决安装macos点继续没反应的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》