您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何開發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的那個樣式
<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的文章。有任何問題,評論區見。
上述就是小編為大家分享的如何開發discuz的關注功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。