位置: 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 使用说明

  • 可变现净值相关税费包括消费税吗
  • 增值税核算应设置什么
  • 每月10万不要交税从什么时候开始
  • 商贸公司运输发票怎么开
  • 行政事业单位无偿调拨资产会计处理
  • 营改增以前土地交易应交税费
  • 政府补助具有无偿性的特征
  • 印花税漏报,税务局怎么罚款
  • 金融企业税务稽查案例分析
  • 五证合一流程
  • 与收益相关政府补助区分总额法净额法吗
  • 虚开发票的受票企业将会受到什么处罚?
  • 股票回购后多久注销
  • 股东变更没有公章和营业执照怎么办
  • 在建工程预付款项记入什么会计科目
  • 出口退税信息系统
  • 借现金还银行怎么做账
  • 电子发票已开出客户退款会计处理是怎样的?
  • 待摊费用做账
  • 广告联系电话
  • 虚拟机怎么安装gcc
  • 报销是可以直接拿钱的吧
  • 工作完工结算是什么意思
  • thinkphp i方法
  • php静态缓存
  • PHP:imagecreatefromstring()的用法_GD库图像处理函数
  • 现金折扣的会计分录处理
  • 企业成立多久可以注销
  • 固定资产是指什么
  • 员工报销发票怎么做账
  • c#开发入门及项目实战
  • 未来社区政策支持
  • php中自定义函数的语法格式
  • phpcms怎么用
  • 发票写的是信息怎么办
  • 深究Python中的asyncio库-线程并发函数
  • php增删改查语句
  • 国税实名认证手机号如何解绑
  • 残疾人开公司要交税吗
  • 兼职工资帐务处理
  • 加计抵减和加计扣除是一个意思吗
  • 计提和发放工资的会计科目
  • 固定资产清理属于什么科目
  • 其他权益工具投资公允价值变动计入什么科目
  • 转售水电费收入确认
  • 代收物业费有什么风险
  • 建筑业负数发票不填工程名称和地址可以吗
  • 留存收益资本成本公式
  • 结汇是把外币换成人民币吗
  • 发票开多了如何做凭证?
  • 计提资产减值是好事还是坏事
  • 交易性金融资产属于什么科目
  • 债权人接受债务人土地抵押,还会被其他债权人查封?
  • 动态sql语句
  • mssql查找备注(text,ntext)类型字段为空的方法
  • bios详细解释
  • win10一天更新几次
  • linux如何使用
  • windows下键盘不能用
  • 如何创建虚拟硬盘
  • win8系统如何安装惠普打印机
  • spool.exe - spool是什么进程
  • 邮件版本
  • centos6.5升级到7.5
  • .mcp是什么文件
  • linux怎样使用命令
  • win8系统关机键找不见
  • win7旗舰版系统激活密钥
  • ,linux
  • css教程推荐
  • css网页布局在线生成
  • js函数详解
  • js注释方法
  • python怎么用命令行
  • Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
  • android进程间通信机制有哪些
  • unity3d基础教程
  • javascript如何定义函数
  • 如果我中了双色球
  • 海南海葬需要多少费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设