目錄
处理是否显示关注
首頁 CMS教程 Discuz discuz如何開發關注功能

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Discuz後台登入問題解決方法大揭秘 Discuz後台登入問題解決方法大揭秘 Mar 03, 2024 am 08:57 AM

Discuz後台登入問題解決方法大揭秘,需要具體程式碼範例隨著網路的快速發展,網站建置變得越來越普遍,而Discuz作為一款常用的論壇建站系統,受到了許多站長的青睞。然而,正是因為其功能強大,有時候我們在使用Discuz的過程中會遇到一些問題,例如後台登入問題。今天,我們就來大揭秘Discuz後台登入問題的解決方法,並且提供具體的程式碼範例,希望能幫助到有需要

Discuz註冊流程詳解:讓您輕鬆修改個人訊息 Discuz註冊流程詳解:讓您輕鬆修改個人訊息 Mar 13, 2024 pm 12:21 PM

《Discuz註冊流程詳解:讓您輕鬆修改個人信息,需要具體代碼示例》Discuz是一款功能強大的社區論壇程序,被廣泛應用於各類網站,在用戶註冊和個人信息修改方面,提供了豐富的功能和介面。本文將為您詳細介紹Discuz的註冊流程,並提供具體的程式碼範例,幫助您輕鬆自訂和修改個人資訊。一、使用者註冊流程在Discuz中,使用者註冊是網站的重要功能之一,註冊流程的順暢與

什麼是Discuz? Discuz的定義與功能介紹 什麼是Discuz? Discuz的定義與功能介紹 Mar 03, 2024 am 10:33 AM

《探索Discuz:定義、功能及程式碼範例》隨著網路的快速發展,社群論壇已成為人們獲取資訊、交流觀點的重要平台。在眾多的社群論壇系統中,Discuz作為國內較知名的一種開源論壇軟體,備受廣大網站開發者和管理員的青睞。那麼,什麼是Discuz?它又有哪些功能,能為我們的網站提供怎樣的幫助呢?本文將對Discuz進行詳細介紹,並附上具體的程式碼範例,幫助讀者更

Discuz用戶必備!改名道俱全面解析! Discuz用戶必備!改名道俱全面解析! Mar 12, 2024 pm 10:15 PM

Discuz用戶必備!改名道俱全面解析!在Discuz論壇中,改名功能一直備受用戶關注與需求。對於一些需要改名的使用者來說,透過改名道具可以輕鬆實現使用者名稱的修改,而且這也是一種有趣的互動方式。以下就讓我們深入探討Discuz中的改名道具,包括如何取得、如何使用、一些常見問題的解決方法。 1.取得改名道具在Discuz中,改名道具通常是透過點數購買或管理員

遇到 Discuz 密碼錯誤怎麼辦?快速解決方案分享! 遇到 Discuz 密碼錯誤怎麼辦?快速解決方案分享! Mar 03, 2024 am 09:33 AM

遇到Discuz密碼錯誤怎麼辦?快速解決方案分享! Discuz!是一款非常受歡迎的論壇程序,它為用戶提供了一個方便交流的平台。在使用Discuz!論壇時,有時會遇到密碼錯誤的情況,這可能會導致使用者無法正常登入和使用論壇。那麼,遇到Discuz!密碼錯誤時,我們該如何快速解決這個問題?以下將分享一些解決方案,並提供具體的程式碼範例供參考。一、檢查密碼是否

解決Discuz微信分享無法顯示的問題 解決Discuz微信分享無法顯示的問題 Mar 09, 2024 pm 03:39 PM

標題:解決Discuz微信分享無法顯示的問題,需要具體程式碼範例隨著行動網路的發展,微信成為了人們日常生活中不可或缺的一部分。在網站開發中,為了提升使用者體驗和擴大網站的曝光度,許多網站會整合微信分享功能,讓使用者能夠輕鬆分享網站的內容到朋友圈或微信群組。然而,有時在使用Discuz等開源論壇系統時,會遇到微信分享無法顯示的問題,這給使用者體驗帶來了一定的困

Discuz編輯器:強大的網頁編輯工具 Discuz編輯器:強大的網頁編輯工具 Mar 09, 2024 pm 06:06 PM

Discuz編輯器:強大的網頁編輯工具,需要具體程式碼範例隨著網路的發展,網站建立和內容編輯變得越來越重要。作為常見的網頁編輯工具,Discuz編輯器在網站建置中扮演著重要的角色。它不僅提供了豐富的功能和工具,還能夠幫助使用者更方便地編輯和發佈內容。在本文中,我們將介紹Discuz編輯器的特點和使用方法,並提供一些具體的程式碼範例,來幫助讀者更好地了解和使用

Discuz後台帳號登入異常,如何處理? Discuz後台帳號登入異常,如何處理? Mar 09, 2024 pm 05:51 PM

標題:Discuz後台帳號登入異常,如何處理?當你使用Discuz論壇系統的後台管理時,有時候可能會遇到帳號登入異常的情況。這可能是由於多種原因導致的,可能是密碼錯誤、帳號被封鎖、網路連線問題等。在遇到這種情況時,我們需要透過簡單的排查和處理來解決這個問題。檢查帳號和密碼是否正確:首先,確認你輸入的帳號和密碼是否正確。登入時,請確保大小寫輸入正確,密碼是否

See all articles