亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何開發discuz的關注功能

發布時間:2020-08-10 14:18:34 來源:億速云 閱讀:183 作者:Leah 欄目:建站服務器

這期內容當中小編將會給大家帶來有關如何開發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的那個樣式

          <a href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid={$space[uid]}&mobile=2
" class="dialog fz12 follow">關注ta
         </a>

如何開發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模板里邊進行判斷

<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的關注功能

總結

關于本文的實現關注功能。在網上的資料不是很多,但是我們也可以自己去研究實現。后期會一直推送discuz的文章。有任何問題,評論區見。

上述就是小編為大家分享的如何開發discuz的關注功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泗水县| 曲麻莱县| 来安县| 旺苍县| 德格县| 勐海县| 息烽县| 舞钢市| 高淳县| 深泽县| 庄浪县| 博兴县| 陕西省| 靖宇县| 绥德县| 定远县| 余庆县| 金坛市| 福安市| 华坪县| 伊宁县| 安图县| 齐齐哈尔市| 沈阳市| 枣阳市| 黎川县| 文水县| 满城县| 庆阳市| 荆州市| 嘉禾县| 天镇县| 出国| 绥宁县| 磐安县| 金塔县| 桂东县| 泉州市| 鄂托克旗| 唐海县| 三明市|