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

溫馨提示×

溫馨提示×

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

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

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

發布時間:2020-08-07 11:03:09 來源:億速云 閱讀:223 作者:Leah 欄目:建站服務器

這篇文章將為大家詳細講解有關Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

本文實現功能:

  1. 開發移動端關注頁面

  2. 開發移動端粉絲頁面

  3. 實現從自己空間看見的關注列表都顯示已關注

  4. 實現自己看其他人關注列表時  自己關注的用戶顯示已關注  自己未關注的用戶顯示關注

  5. 解決如何在PHP文件里邊顯示移動端頁面

前期準備:解決PHP文件里邊顯示移動端頁面

在discuz中移動端是沒有粉絲,關注頁面的,那么就需要我們來開發。以下就是開發流程。

discuz中pc端是有收聽和聽眾的功能。如下圖home.php?mod=follow&do=follower這個地址就是對應的pc端的粉絲頁面

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

然后我們可以追溯PHP文件source/module/home/home_follow.php 的這個文件。在這個文件里,我們只需要注意到follower 和 following 這倆個名字。這倆個一個是關注的意思  一個是粉絲的意思

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

然后根據discuz的訪問機制我們去模板里找一下follow_follower.html這個文件。但是在模板里邊我們發現使用follow開頭的文件就這幾個

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

繼續來到文件source/module/home/home_follow.php然后拉到最后看加載的模板。這里可以看到加載的模板就是上邊看到的follow_feed.html這個文件。

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理那么我們就來到template/default/home/follow_feed.htm這個文件里邊,大概是在554行左右可以看到很熟悉的倆個模塊一個follower和following

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

既然已經猜想是在這里了,那就寫一個測試代碼測試一下。

經過測試我們就已經確信無誤了,這個頁面就是加載的關注頁面和粉絲頁面。

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

在上面的測試會發現地址請求的是/home.php?mod=follow&do=follower,但是加載html文件卻是template/default/home/follow_feed.htm。也就是說在dsicuz中如果需要加載跟請求地址不一致的文件,需要使用template函數來加載。

那么下面咱們自己寫一個移動端follow_follower文件。

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理然后瀏覽器調整為手機訪問模式即可

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

以上就是二開關注頁面和粉絲頁面PHP如何加載

開發粉絲頁面和關注頁面并實現數據接入

在模板里邊我們也可以這樣寫,判斷do為follower時進入粉絲模板,為關注時進入關注模板Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

下圖就是咔咔開發關注頁面的效果

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

那么頁面寫完了我們就需要實現數據對接了。繼續回到template/default/home/follow_feed.htm這個文件。可以看到使用的數據是list,循環使用的是fuser這個變量

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

實現關注顯示與不顯示

打開discuz數據庫字典,可以看到是否關注使用的是mutual這個字段Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

根據mutual這個字段來控制關注與已關注的顯示與不顯示

  • 當自己進入自己空間時在關注列表里邊是全部顯示已關注  判斷條件是 當$_G[uid] == $_GET[uid]時mutual>=0即可

  • 當自己進入別人空間查看關注列表時 如果是自己關注的用戶需要顯示已關注  否則顯示關注即可   這里的判斷條件是  $_G[uid] != $_GET[uid]時mutual==-1或者mutual==1即可。這里為什么會有一個mutual=-1的標識。數據庫字典是沒有這個標識的,但是實際測試出來的是有的,咔咔也看了源碼是做了一個判斷,先知道這么判斷就行

  • 在關注列表里邊所有的鏈接地址都為home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2。所有的用戶標識都是followuid即可

  • 粉絲列表就很簡單,直接使用-1和1判斷即可

  • 也就是說mutual這個字段的值為0 和1是只能判斷自己在自己空間查看關注和粉絲列表時可以使用。如果是自己進入其他用戶的粉絲和關注列表就會產生一個mutual的值為-1的一個字段

  • 那也就是當自己進入其他用戶有自己已經關注的用戶時mutual的值就是-1

實現代碼

// 粉絲模板
<p class="follow_manage">
   <!--{if $fuser[mutual] == -1 || $fuser[mutual] == 1}-->
   <a id="a_followmod_{$fuser['uid']}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['uid']&mobile=2" class="flw_btn_fo dialog">
      <i class="iconfont  icon-like_fill rq"></i>
      <font class="grey">已關注</font>
   </a>
   <!--{else}-->
   <a id="a_followmod_{$fuser['uid']}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser['uid']&mobile=2" class="flw_btn_fo dialog">
      <i class="iconfont icon-like"></i>
      <font class="grey">關注</font>
   </a>
   <!--{/if}-->
</p>

// 關注列表模板
<p class="follow_manage">
   <!--{if $_G[uid] != $_GET[uid]}-->
      <!--{if $fuser[mutual] == -1 || $fuser[mutual] == 1}-->
      <a id="a_followmod_{$fuser['followuid']}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2" class="flw_btn_fo dialog">
         <i class="iconfont  icon-like_fill rq"></i>
         <font class="grey">已關注</font>
      </a>
      <!--{else}-->
      <a id="a_followmod_{$fuser['followuid']}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2" class="flw_btn_fo dialog">
         <i class="iconfont icon-like"></i>
         <font class="grey">關注</font>
      </a>
      <!--{/if}-->
   <!--{else}-->
      <!--{if $fuser[mutual] == 0 || $fuser[mutual] == 1}-->
      <a id="a_followmod_{$fuser['followuid']}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2" class="flw_btn_fo dialog">
         <i class="iconfont  icon-like_fill rq"></i>
         <font class="grey">已關注</font>
      </a>
      <!--{else}-->
      <a id="a_followmod_{$fuser['followuid']}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2" class="flw_btn_fo dialog">
         <i class="iconfont icon-like"></i>
         <font class="grey">關注</font>
      </a>
      <!--{/if}-->
   <!--{/if}-->

</p>

畫圖解釋用戶關注的邏輯處理

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

  • 現在用戶A,用戶B,用戶C

  • 用戶A關注了用戶C

  • 然后用戶B進入到用戶A空間的關注列表是可以看到用戶C的

  • 假如這個時候用戶B已經關注了用戶C,那么這個時候關注的按鈕就是已關注,這個時候mutual的值就是-1(這種情況就是自己到別人的關注列表查看用戶,如果有自己已經關注過的就會顯示已關注,并且mutual的值為-1)

  • 這個時候用戶B在回到自己的用戶空間查看關注列表就會顯示用戶C在自己的列表,但是這個時候mutual的值為0.  但是當用戶C也關注了用戶B時mutual的值就是1

  • 所以說用戶當用戶B在自己空間的關注列表查看使用mutual的值為0和1判斷。當用戶B去查看用戶A的關注列表時使用mutual為-1和1來判斷

畫圖解釋粉絲的邏輯處理

Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理

  • 現用用戶A,用戶B,用戶C

  • 當用戶A關注了用戶C時,用戶C的粉絲列表就是有用戶A

  • 這個時候用戶B訪問用戶C的粉絲列表就只有用戶A, 這個時候用戶A的關注狀態也是  未關注狀態,并且mutual的是0

  • 假如用戶A也關注了用戶B,用戶B在用戶C的粉絲列表里查看用戶A的狀態也是未關注狀態  并且mutual的值為0

  • 但是當用戶B關注了用戶A后,這個時候用戶B在用戶C的粉絲列表查看用戶A的狀態就是已關注并且mutual的值為1表示互相關注

  • 但是當用戶A沒有關注用戶B

  • 這個時候用戶用戶B在用戶C的粉絲列表里邊看到用戶A的狀態是未關注,當B把用戶A關注后狀態為已關注,mutual的值為-1

  • 所以粉絲列表里邊判斷只有當mutual的值為-1或者1時是關注狀態,其余都是未關注狀態

關于Discuz如何實現移動端二開之關注和粉絲頁面以及關注狀態處理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

永丰县| 宣恩县| 栖霞市| 巴青县| 淅川县| 陈巴尔虎旗| 调兵山市| 特克斯县| 防城港市| 德清县| 司法| 惠州市| 敖汉旗| 开江县| 绥中县| 双流县| 长武县| 静乐县| 漳州市| 松潘县| 关岭| 巴马| 台南县| 澜沧| 彭水| 卓尼县| 巴南区| 大足县| 高安市| 五常市| 同江市| 银川市| 大理市| 禄丰县| 嵊州市| 正定县| 镇康县| 淅川县| 寻甸| 长海县| 姚安县|