搜尋
首頁CMS教程Discuzdiscuz如何開發關注功能

discuz如何開發關注功能

May 07, 2020 pm 12:08 PM
discuz

本文實現功能:

        1.關注和取消關注用戶

        2. 判斷與用戶之間的關注關係

實現效果

點擊關注後顯示已關注,取消關注後顯示關注ta

discuz如何開發關注功能

discuz如何開發關注功能

#實作方案

使用者空間的入口是home.php文件,所以我們需要先從home.php這個檔案入手

開啟檔案home.php檔案的29行可以看到使用in_array進行了一次判斷,主要注重space和spacecp這兩個模組

我們先認識兩個單字:space(空間) 和spacecp(翻譯過來是太空計畫) 

discuz如何開發關注功能

#然後我們需要打開discuz原來的預設模板(這個是你自己在搭建一個discuz應用,沒有任何改動的程式碼),然後發一個主題,隨便點擊一個用戶圖像,查看網址列的地址資訊。

發現進入的是space這個模組

discuz如何開發關注功能

那麼根據網址列我們可以找到source/include/space/space_profile.php這個文件。但是在這個文件裡邊,找不到任何關於關注的程式碼。

但是這個檔案裡邊包含了關於使用者空間的所有需要​​的資料。例如用戶粉絲量,用戶主題數、用戶關注的數量、用戶好友數。這些值都保存在$space這個變數中,直接在模板裡邊使用介面。關於這些欄位可以在資料庫字典裡邊直接搜尋關鍵字即可

於是我們在看一下spacecp這個模組,在這個目錄下, 我們發現了follow這個檔案。 follow的英文翻譯過來就有關注的意思。

在學習別人專案時,我們第一需要看文檔,第二是需要自己根據目錄結構和文件名稱來猜想其含義

discuz如何開發關注功能

打開檔案source/include/spacecp/spacecp_follow.php。在檔案一開頭就有兩個數值,一個add一個del。然後是使用的op這個變數接收的。根據這個op變數就可以知道加入關注是add  取消關注時del方法

discuz如何開發關注功能

我們在add裡邊發現一個值follow_not_follow_self這個我的理解是自己不能關注自己。可以在language裡邊進行搜尋這個值去進行確認。這裡就已經證明了source/include/spacecp/spacecp_follow.php就是實作關注的檔案

discuz如何開發關注功能

接下來就是怎麼進行請求呢!

根據下面箭頭所指向的四個$_GET值  我們能確定的請求位址為

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

至於為何能確定請求位址,後文在介紹,本文重點是關注功能

discuz如何開發關注功能

然後我們在模板裡邊寫上以下程式碼,就是關注ta的那個樣式

          

discuz如何開發關注功能

點擊關注,這個時候我們關注就已經做好了。那麼取消追蹤也是同理了哈!

discuz如何開發關注功能

接下來我們根據關鍵字follow在資料庫字典裡邊搜索,發現會有一個使用者關注關係表

discuz如何開發關注功能

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

discuz如何開發關注功能

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

处理是否显示关注

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

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

discuz如何開發關注功能

然后打开文件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如何開發關注功能

总结

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

以上是discuz如何開發關注功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版