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方法
我们在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的那个样式
关注ta
点击关注,这个时候我们关注就已经做好了。那么取消关注也是同理了哈!
接下来我们根据关键字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模板里边进行判断
测试
没有关注时显示关注ta
关注之后显示以关注
总结
关于本文的实现关注功能。在网上的资料不是很多,但是我们也可以自己去研究实现。后期会一直推送discuz的文章。有任何问题,评论区见。
以上是discuz如何开发关注功能的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Discuz后台登录问题解决方法大揭秘,需要具体代码示例随着互联网的快速发展,网站建设变得越来越普遍,而Discuz作为一款常用的论坛建站系统,受到了许多站长的青睐。然而,正是因为其功能强大,有时候我们在使用Discuz的过程中会遇到一些问题,比如后台登录问题。今天,我们就来大揭秘Discuz后台登录问题的解决方法,并且提供具体的代码示例,希望能帮助到有需要

《Discuz注册流程详解:让您轻松修改个人信息,需要具体代码示例》Discuz是一款功能强大的社区论坛程序,被广泛应用于各类网站,在用户注册和个人信息修改方面,提供了丰富的功能和接口。本文将为您详细介绍Discuz的注册流程,并提供具体的代码示例,帮助您轻松定制和修改个人信息。一、用户注册流程在Discuz中,用户注册是站点的重要功能之一,注册流程的顺畅与

《探索Discuz:定义、功能及代码示例》随着互联网的迅猛发展,社区论坛已经成为人们获取信息、交流观点的重要平台。在众多的社区论坛系统中,Discuz作为国内较为知名的一种开源论坛软件,备受广大网站开发者和管理员的青睐。那么,什么是Discuz?它又有哪些功能,能为我们的网站提供怎样的帮助呢?本文将对Discuz进行详细介绍,并附上具体的代码示例,帮助读者更

Discuz用户必备!改名道具全面解析!在Discuz论坛中,改名功能一直备受用户关注和需求。对于一些需要改名的用户来说,通过改名道具可以轻松实现用户名的修改,而且这也是一种有趣的互动方式。下面就让我们深入探讨一下Discuz中的改名道具,包括如何获取、如何使用以及一些常见问题的解决方法。1.获取改名道具在Discuz中,改名道具通常是通过积分购买或者管理员

遇到Discuz密码错误怎么办?快速解决方案分享!Discuz!是一款非常流行的论坛程序,它为用户提供了一个方便交流的平台。在使用Discuz!论坛时,有时候会遇到密码错误的情况,这可能会导致用户无法正常登录和使用论坛。那么,遇到Discuz!密码错误时,我们应该如何快速解决这个问题呢?下面将分享一些解决方案,并提供具体的代码示例供参考。一、检查密码是否

标题:解决Discuz微信分享无法显示的问题,需要具体代码示例随着移动互联网的发展,微信成为了人们日常生活中不可或缺的一部分。在网站开发中,为了提升用户体验和扩大网站的曝光度,很多站点会集成微信分享功能,让用户能够方便地分享网站的内容到朋友圈或者微信群中。然而,有时候在使用Discuz等开源论坛系统时,会遇到微信分享无法显示的问题,这给用户体验带来了一定的困

Discuz编辑器:强大的网页编辑工具,需要具体代码示例随着互联网的发展,网站建设和内容编辑变得越来越重要。作为一种常见的网页编辑工具,Discuz编辑器在网站建设中扮演着重要的角色。它不仅提供了丰富的功能和工具,还能够帮助用户更方便地编辑和发布内容。在本文中,我们将介绍Discuz编辑器的特点和使用方法,并提供一些具体的代码示例,来帮助读者更好地了解和使用

标题:Discuz后台账号登录异常,如何处理?当你使用Discuz论坛系统的后台管理时,有时候可能会遇到账号登录异常的情况。这可能是由于多种原因导致的,可能是密码错误、账号被封锁、网络连接问题等。在遇到这种情况时,我们需要通过简单的排查和处理来解决这个问题。检查账号和密码是否正确:首先,确认你输入的账号和密码是否正确。在登录时,要确保大小写输入正确,密码是否
