接下来就是怎么进行请求呢!
根据下面箭头指向的四个$_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的文章。有任何问题,评论区见。