ホームページ  >  記事  >  CMS チュートリアル  >  Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

咔咔
咔咔オリジナル
2020-05-11 01:23:142774ブラウズ

この記事で実装されている機能:

  1. モバイル ファン ページの開発

  2. モバイル ファン ページの開発

  3. 自分のスペースから表示されるすべてのウォッチ リストは次のように表示されることに注意してください。

  4. # 他の人のウォッチ リストを見ると、あなたがフォローしているユーザーはフォロー中と表示され、フォローしていないユーザーは表示されます 注意を表示

  5. PHP ファイルでモバイル ページを表示する方法の解決策


##準備 : PHP ファイルでモバイル ページを表示する問題を解決する

discuz では、モバイル ページにファンやフォロワーがいないため、次のことが必要です。それを開発するために。以下は開発プロセスです。

discuz の PC 側にはリスニング機能とオーディエンス機能があります。以下に示すように、アドレス home.php?mod=follow&do=follower は、PC 側の対応するファン ページです。

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理


# PHP ファイル

source/module/home/home_follow.php このファイルをトレースできます。このファイルでは、次と次の名前に注目するだけで済みます。これら 2 つのうちの 1 つは注目を意味し、もう 1 つはファンを意味します

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

# 次に、次のアクセス メカニズムに従ってテンプレートに移動します。 discuz ファイル follow_follower.html を見つけます。しかし、テンプレートでは、follow で始まるファイルは次のとおりであることがわかりました。

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

## ファイルのソース/モジュール/ホームに進みます。 /home_follow.php をクリックし、最後までスクロールして、読み込まれたテンプレートを確認します。ここで、読み込まれたテンプレートが上記の follow_feed.html ファイルであることがわかります。

# 次に、ファイル template/default/home/follow_feed.htm に到達します。554 行目あたりに 2 つのよく知られたモジュールと 1 つのフォロワーが表示されます。

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

##ここにあると推測できたので、それをテストするためのテスト コードを作成します。 Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

テストの結果、このページは読み込まれたフォロー ページおよびファン ページであると確信しています。

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

#上記のテストでは、アドレス要求が見つかります。は /home.php?mod=follow&do=follower ですが、読み込まれる HTML ファイルは template/default/home/follow_feed.htm です。つまり、要求されたアドレスと一致しないファイルを dsicuz にロードする必要がある場合は、テンプレート関数を使用してファイルをロードする必要があります。 Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

次に、モバイルの follow_follower ファイルを自分で作成してみましょう。

#次にブラウザをモバイル アクセス モードに調整しますDiscuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理#上記は、PHP

で 2 番目のフォローページとファンページを読み込む方法です。
ファンページとフォローページを開発し、データアクセスを実装する

テンプレートにこのように書くこともできます。ファンテンプレートを入力してください。フォローするときにフォローテンプレートを入力してください。


下の写真は、Kaka が開発したフォローページの効果です。

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

ページを作成した後、データ ドッキングを実装する必要があります。 template/default/home/follow_feed.htm ファイルに戻ります。使用されているデータがリストであり、ループ内で変数 fuser が使用されていることがわかります。

##discuz データベース辞書を開くと、フォーカスが相互参照を使用しているかどうかを確認できます。フィールドDiscuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

相互フィールドに基づいてフォーカスを制御し、相互フィールドを使用します。 フォローされているフィールドの表示と非表示

あなたのフィールドを入力すると、自分のスペースの場合、フォローリストにはフォローされているものがすべて表示されます 判定条件は $_G[uid] == $_GET[uid] 相互>=0の場合、

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理自分の場合他の人のスペースに入ってフォローリストを表示する場合、フォローしているユーザーをフォロー中として表示する必要がある場合、そうでない場合はフォロー中として表示されます ここでの判定条件は、$_G [uid] != $_GET[uid]、相互です==-1 または相互==1 で十分です。ここにmutual=-1フラグがあるのはなぜですか?データベース辞書にはこのロゴがありませんが、実際のテスト結果にはこのロゴがあることがわかります。Kaka もソース コードを見て判断しました。まず判断方法を知ってください。

    ウォッチ リスト内のすべてのリンク アドレスは home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser['followuid']&mobile=2 です。すべてのユーザー ID は followuid です
  • ファン リストは非常に単純です。-1 と 1 を使用して判断します。
  • つまり、次の値が相互フィールドは0と1で、自分のスペースでフォローおよびファンリストを表示する場合にのみ使用できます。他のユーザーのファンと注目リストを入力すると、相互値が -1 のフィールドが生成されます
  • つまり、他のユーザーを入力すると、あなたが好むユーザーが存在します相互の値が-1の場合
  • 実装コード
  • // 粉丝模板
    <p class="follow_manage">
       <!--{if $fuser[mutual] == -1 || $fuser[mutual] == 1}-->
       <a id="a_followmod_{$fuser[&#39;uid&#39;]}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser[&#39;uid&#39;]&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[&#39;uid&#39;]}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser[&#39;uid&#39;]&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[&#39;followuid&#39;]}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser[&#39;followuid&#39;]&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[&#39;followuid&#39;]}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser[&#39;followuid&#39;]&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[&#39;followuid&#39;]}" href="home.php?mod=spacecp&ac=follow&op=del&hash={FORMHASH}&fuid=$fuser[&#39;followuid&#39;]&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[&#39;followuid&#39;]}" href="home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid=$fuser[&#39;followuid&#39;]&mobile=2" class="flw_btn_fo dialog">
             <i class="iconfont icon-like"></i>
             <font class="grey">关注</font>
          </a>
          <!--{/if}-->
       <!--{/if}-->
    
    </p>

    ユーザーが気になる論理処理を図で説明する

##現在、ユーザー A、ユーザー B、ユーザー C


ユーザー A がユーザー C

## をフォローしています

Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理#その後、ユーザー B が入ります。ユーザー A のスペースのフォロー リストにユーザー C の

  • が表示されます。この時点でユーザー B がユーザー C をフォローしている場合、このときのフォローボタンは「フォロー済み」です。このときの相互の値は-1です(この場合、他の人のウォッチリストに移動してユーザーを表示します。すでにユーザーをフォローしている場合は、 と表示されます)

  • この時点で、ユーザー B がフォロー リストを表示するためにユーザー スペースに戻ると、ユーザー C が彼のリストに含まれていることが表示されます。ただし、このときの相互値は 0 です。しかし、ユーザー C がユーザー B もフォローすると、相互値は 1 になります。

  • つまり、ユーザー B が自分のスペースのウォッチ リストを確認すると、彼は 0 と 1 の相互の値を使用して判断します。ユーザー B がユーザー A のウォッチ リストを見に行くとき、-1 と 1 の相互値を使用して判断します。

  • #ファンの論理処理を説明する図を描きます

  • 現在使用しているユーザー A、ユーザー B、ユーザー C
  • ユーザー A がユーザー C をフォローすると、ユーザー C のファンリストにユーザーが含まれますA

#現時点では、ユーザー B はユーザー A のみがユーザー C のファンリストにアクセスしています。このとき、ユーザー A のフォロー状態も解除されており、相互の値は 0

# です。 Discuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理

## ユーザー A がユーザー B もフォローしている場合、ユーザー B はユーザー C のファンリストでユーザー A のステータスを確認し、フォローも解除され、相互の値は 0
  • # # しかし、ユーザー B がユーザー A をフォローした後、この時点でユーザー B はユーザー C のファンリストでユーザー A のステータスを確認し、相互の値は 1 であり、相互にフォローしていることを示します

  • # #ただし、ユーザーAがユーザーBをフォローしていない場合

  • このとき、ユーザーBは、ユーザーCのファンリストでユーザーAのステータスがフォロー解除されていることを確認し、BがユーザーAをフォローすると、ステータスはフォローされます。 .mutualの値は-1

  • なので、ファンリストではmutualの値が-1または1の場合のみ以下の状態であると判断します。

  • #概要
  • 上記は実装の全プロセスです。このコードは次の記事で分析されます

以上がDiscuz モバイル端末の 2 番目のリリース: フォローおよびファン ページとフォロー ステータスの処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。