位置: IT常识 - 正文

discuz如何开发关注功能(discuzq开发)

编辑:rootadmin
本文实现功能:1.关注和取消关注用户;2. 判断与用户之间的关注关系实现效果点击关注后显示已关注,取消关注后显示关注ta实现方案用户空间的入口是home.php文件。

推荐整理分享discuz如何开发关注功能(discuzq开发),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:discuz门户怎么用,discuz怎么使用,discuzq开发,discuz怎么使用,discuzq开发,discuzq开发,discuz开发者,discuz开发者,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实现功能:

1.关注和取消关注用户

2. 判断与用户之间的关注关系

实现效果

点击关注后显示已关注,取消关注后显示关注ta

实现方案

用户空间的入口是home.php文件,所以我们需要先从home.php这个文件入手

打开文件home.php文件的29行可以看到使用in_array进行了一次判断,主要注重space和spacecp这俩个模块

我们先认识俩个单词:space(空间) 和 spacecp(翻译过来是太空计划)

然后我们需要打开discuz原来的默认模板(这个是你自己在搭建一个discuz应用,没有任何改动的代码),然后发一个主题,随便点击一个用户图像,查看地址栏的地址信息。

发现进入的是space这个模块

那么根据地址栏我们可以找到source/include/space/space_profile.php这个文件。但是在这个文件里边,找不到任何有关于关注的代码。

但是这个文件里边包含了关于用户空间的所有需要的数据。比如用户粉丝量,用户主题数量、用户关注的数量、用户好友数量。这些值都保存在$space这个变量中,直接在模板里边使用接口。关于这些字段可以在数据库字典里边直接搜索关键字即可

于是我们在看一下spacecp这个模块,在这个目录下, 我们发现了follow这个文件。follow的英文翻译过来就有关注的含义。

在学习别人项目时,我们第一需要看文档,第二是需要自己根据目录结构和文件名来猜想其含义

打开文件source/include/spacecp/spacecp_follow.php。在文件一开头就有俩个数值,一个add一个del。然后是使用的op这个变量接收的。根据这个op变量就可以知道添加关注是add 取消关注时del方法

discuz如何开发关注功能(discuzq开发)

我们在add里边发现一个值follow_not_follow_self这个我的理解是自己不能关注自己。可以在language里边进行搜索这个值去进行确认。在这里就已经证明了source/include/spacecp/spacecp_follow.php就是实现关注的文件

接下来就是怎么进行请求呢!

根据下面箭头指向的四个$_GET值 我们能确定的请求地址为

home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid={$space[uid]}&mobile=2

至于为什么能确定请求地址,后文在介绍,本文重点是关注功能

然后我们在模板里边写上以下代码,就是关注ta的那个样式

<a href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid={$space[uid]}&mobile=2" class="dialog fz12 follow">关注ta</a>

点击关注,这个时候我们关注就已经做好了。那么取消关注也是同理了哈!

接下来我们根据关键字follow在数据库字典里边搜索,发现会有一个用户关注关系表

打开数据库查到pre_home_follow 这个表,就会发现有一条数据就是关注者跟被关注者。

在上文中我们实现了关注与取消关注,但是当我们关注了用户后,是不是需要显示已关注 或者 关注ta的字样

处理是否显示关注

我们打开数据库字典搜索pre_common_member_count 用户统计表。

在这个表里边我们发现有收听数量和听众数量。那么对应的就是关注数量和粉丝数量

然后打开文件source/include/space/space_profile.php加上代码

# 判断是否关注$follow_data = DB::fetch_all("select * from pre_home_follow where uid = '$_G[uid]' and followuid = '$space[uid]' limit 1");if(!empty($follow_data)){$space['is_follow'] = $follow_data[0]['mutual'];}

在template/default/touch/home/space_profile.htm模板里边进行判断

<div class="porfile_card_follow cl"><!--{if isset($space[is_follow]) && $space[is_follow] == 0}--><a href="home.php?mod=spacecp&ac=follow&op=del&fuid={$space[uid]}&mobile=2" class="dialog fz12 follow">已关注</a><!--{else}--><a href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid={$space[uid]}&mobile=2" class="dialog fz12 follow">关注ta</a><!--{/if}--></div>测试

没有关注时显示关注ta

关注之后显示以关注

总结

关于本文的实现关注功能。在网上的资料不是很多,但是我们也可以自己去研究实现。后期会一直推送discuz的文章。有任何问题,评论区见。

本文链接地址:https://www.jiuchutong.com/zhishi/303299.html 转载请保留说明!

上一篇:关于高德地图2.0卡顿问题的解决方案(chrome设置+显卡设置)(关于高德地图的分析报告)

下一篇:JavaScript の querySelector 使用说明

  • 黄钻怎么设置隐身访问(黄钻怎么设置隐身访问陌生人)

    黄钻怎么设置隐身访问(黄钻怎么设置隐身访问陌生人)

  • 支付宝自动支付在哪里关闭(如何取消xbox的支付宝自动支付)

    支付宝自动支付在哪里关闭(如何取消xbox的支付宝自动支付)

  • 淘宝红包怎么用(淘宝红包怎么用掉)

    淘宝红包怎么用(淘宝红包怎么用掉)

  • 荣耀v30pro是曲屏还是直面屏呢(荣耀v30pro曲屏度数)

    荣耀v30pro是曲屏还是直面屏呢(荣耀v30pro曲屏度数)

  • 为什么qq无响应(为啥qq总是无响应)

    为什么qq无响应(为啥qq总是无响应)

  • 闲鱼发布商品搜索不到是哪些原因导致的(闲鱼发布商品搜不到 超过5天)

    闲鱼发布商品搜索不到是哪些原因导致的(闲鱼发布商品搜不到 超过5天)

  • 苹果qq来消息不提醒(苹果qq来消息不通知)

    苹果qq来消息不提醒(苹果qq来消息不通知)

  • 申请公众号需要什么(申请公众号需要多久)

    申请公众号需要什么(申请公众号需要多久)

  • word表格怎么插入列(word表格怎么插分隔符)

    word表格怎么插入列(word表格怎么插分隔符)

  • 抖音极速版怎么看直播(抖音极速版怎么升级最新版本)

    抖音极速版怎么看直播(抖音极速版怎么升级最新版本)

  • 苹果黑白名单关闭是什么(苹果黑白名单关闭是黑名单吗)

    苹果黑白名单关闭是什么(苹果黑白名单关闭是黑名单吗)

  • 什么是计算机多媒体技术(多计算机系统属于什么体系结构)

    什么是计算机多媒体技术(多计算机系统属于什么体系结构)

  • 手机怎样缩小照片kb(手机怎样缩小照片打印)

    手机怎样缩小照片kb(手机怎样缩小照片打印)

  • 小天才电话手表怎么删除应用(小天才电话手表怎么插卡)

    小天才电话手表怎么删除应用(小天才电话手表怎么插卡)

  • 什么叫应用场景(应用场景解决方案是什么意思)

    什么叫应用场景(应用场景解决方案是什么意思)

  • 大数据时代的核心是什么(大数据时代的核心价值是数据收集)

    大数据时代的核心是什么(大数据时代的核心价值是数据收集)

  • 华为p30pro是无线充电吗(华为p30带无线)

    华为p30pro是无线充电吗(华为p30带无线)

  • ar3bt和ar5bt差别(ar3is和ar3bt)

    ar3bt和ar5bt差别(ar3is和ar3bt)

  • airpods充电盒上的按钮有什么用(airpods充电盒外面有指示灯吗)

    airpods充电盒上的按钮有什么用(airpods充电盒外面有指示灯吗)

  • 苹果手机qq小程序在哪里打开(苹果手机QQ小程序打不开)

    苹果手机qq小程序在哪里打开(苹果手机QQ小程序打不开)

  • 抖音怎么升级(抖音怎么升级到最新版本)

    抖音怎么升级(抖音怎么升级到最新版本)

  • kencapi.exe是什么进程 kencapi进程查询(kscreensaverapp.exe是什么)

    kencapi.exe是什么进程 kencapi进程查询(kscreensaverapp.exe是什么)

  • CSS-200个小案例(一)(完整的css代码案例)

    CSS-200个小案例(一)(完整的css代码案例)

  • 项目部署,一点也不难!(项目部署计划)

    项目部署,一点也不难!(项目部署计划)

  • ps中使用背景橡皮擦实现边缘过度柔和(ps使用背景橡皮擦的时候需要按住什么键)

    ps中使用背景橡皮擦实现边缘过度柔和(ps使用背景橡皮擦的时候需要按住什么键)

  • dedecms织梦列表文章审核更新到当前时间(织梦怎么添加相关)

    dedecms织梦列表文章审核更新到当前时间(织梦怎么添加相关)

  • 外贸企业出口流程图
  • 用友软件80端口被占用解决方法
  • 商誉是减值还是摊销
  • 吸收合并一般需要多久
  • 土地增值税二次清算规定
  • 应纳税所得额为什么要减去国债利息收入
  • 发票红冲原票怎么处理
  • 增值税有定额税率吗
  • 土地增值税可扣除的税金有哪些
  • 以前年度做的预算怎么查
  • 哪家银行存款利率高2023
  • 二手房有不动产统一发票吗
  • 盐酸编号
  • 平销返利怎么开票入账
  • 库存占销售的多少合适
  • 小规模开税票怎么开
  • 资产减值损失月末需要结转吗
  • 增值税专用发票丢了怎么补救
  • 计提本月城市维护建设税,教育费附加500元
  • 增值税应税劳务的纳税人是什么意思
  • 印花税的征收项目
  • 鸿蒙侧边菜单
  • 待摊费用和预提费用的区别
  • 母公司是否应替子公司承担违约责任
  • 运输公司转包业务怎么开票
  • 停工损失会计准则
  • steam怎么退款申请退款要多久
  • 怎么关闭windows defender
  • 自创商誉的确认
  • php中的类型提示是什么
  • 三元运算符判断闰年php
  • 应付债券的会计处理例题
  • 所得税费用怎么计算公式
  • 出租固定资产取得的收入属于收入要素吗
  • layui iconfont
  • framework在哪看
  • 育空河24102
  • vue2和vue3面试题
  • reset fields
  • anaconda下的python
  • 老师不干了可以从事什么行业
  • 利润表中本期数
  • 微信收款怎么记录怎么删除
  • 上年度的企业所得税汇算清缴怎么查询
  • 紫白择日法实例详解
  • 车补贴是要缴纳增值税吗
  • 预付账款可以抵扣增值税么
  • 分公司可以独立签约吗
  • MySQL5.6 Replication主从复制(读写分离) 配置完整版
  • 企业研发费用加计扣除比例
  • 物品数量怎么填写
  • 收据作为原始凭证的依据
  • 煤炭资源税优惠政策
  • 成本法核算的投资收益缴纳企业所得税
  • 老板买私人飞机可以避税吗
  • 中标费用入什么科目
  • 顺流交易为什么不考虑出售比例
  • 购买固定资产没收到发票怎么做账
  • 公司租用私人汽车怎么操作
  • 营改增后建筑企业税负不降反增
  • 关于发票丢失的处罚
  • 公司原股东转让全部股权误把认缴金额写成转让金额
  • mysql5.7.27安装
  • linux下mysql 5.7.16 免安装版本图文教程
  • downloader.exe是什么
  • vs2013运行
  • linux定时删除2天前的文件输出日志
  • centos7图形安装
  • win7移动硬盘写保护了怎么解除
  • win8不能安装软件
  • win10不停的自动重启
  • jquery插件怎么写
  • nodejs创建vue
  • 梦见擦窗户框
  • js强制把网址设为密码
  • unity官方插件
  • jQuery Ajax页面局部加载方法汇总
  • 监督医院的单位
  • 税务局纳税服务品牌
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设