>CMS 튜토리얼 >Discuz >Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리

咔咔
咔咔원래의
2020-05-11 01:23:143058검색

이 글에 구현된 기능:

  1. 모바일 팔로어 페이지 개발

  2. 모바일 팬 페이지 개발

  3. 자신의 공간에서 보이는 팔로어 목록을 보면 내가 팔로우했음을 알 수 있습니다

  4. 알아두세요 자신이 다른 사람의 팔로워를 볼 수 있도록 등록할 때 내가 팔로우하는 사용자는 팔로우로 표시되고 팔로우하지 않는 사용자는 팔로우로 표시됩니다

  5. 모바일 페이지 표시 방법을 PHP 파일로 풀어보세요


준비: PHP 파일에서 모바일 페이지를 표시하는 문제를 해결하세요

discus에서는 모바일 측에 팬이나 팔로어가 없으므로 개발해야 합니다. 다음은 개발 과정이다.

Discuz는 PC 버전에서 듣기 및 청중 기능을 제공합니다. 아래와 같이 home.php?mod=follow&do=follower 주소는 PC의 해당 팬 페이지

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리


그러면 PHP 파일 source/module/home/home_follow.php 을 추적할 수 있습니다. . 이 파일에서는 이름 뒤에 오는 이름만 기록하면 됩니다. 둘 중 하나는 팔로우를 의미하고 다른 하나는 팬을 의미합니다

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리

그런 다음 discuz의 액세스 메커니즘에 따라 템플릿으로 이동하여 follow_follower.html 파일을 찾습니다. 하지만 템플릿에서 follow로 시작하는 유일한 파일은

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리 파일 source/module/home/home_follow.php로 이동하고 끝까지 스크롤하여 로드된 템플릿을 확인하는 것으로 나타났습니다. 여기에서 로드된 템플릿이 위에서 본 follow_feed.html 파일임을 확인할 수 있습니다.

그런 다음 template/default/home/follow_feed.htm 파일로 이동합니다. 554번째 줄 근처에 두 개의 친숙한 모듈인 follower와 Following

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리을 볼 수 있습니다. 여기 있으니 테스트 코드를 작성해 보겠습니다.

테스트 결과 이 ​​페이지가 팔로우 페이지와 팬 페이지가 로드된 것으로 확인되었습니다.

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리위 테스트에서 요청한 주소는 /home.php?mod=follow&do=follower이지만 로드된 html 파일은 template/default/home/입니다. follow_feed.htm . 즉, dsicuz에서 요청한 주소와 일치하지 않는 파일을 로드해야 하는 경우 템플릿 기능을 사용하여 로드해야 합니다.


그럼 모바일 follow_follower 파일을 직접 작성해 보겠습니다.

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리다음은 브라우저를 모바일 액세스 모드로 조정하세요

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리


위는 PHP에서 두 번째 팔로우 페이지와 팬 페이지를 로드하는 방법입니다.

팬 페이지를 개발하고 페이지를 팔로우하고 데이터 액세스를 구현합니다


템플릿에 이렇게 적을 수도 있습니다. 팔로워라고 판단되면 팬 템플릿에 들어가고, 팔로우하면 팬 템플릿에 들어갑니다. 팔로우 템플릿

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리아래 사진은 카카 팔로우 페이지 효과 개발


페이지 작성이 끝나면 데이터 도킹을 구현해야 합니다. 계속해서 template/default/home/follow_feed.htm 파일로 돌아갑니다. 사용된 데이터가 목록이고 변수 퓨저가 루프

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리

에서 사용되어 주의를 표시할지 여부를 알 수 있습니다.

discus 데이터베이스 사전을 열고 관심이 상호를 사용하고 있는지 확인할 수 있습니다. 이 필드는Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리

상호 필드에 따라 팔로우 및 팔로우 표시 여부를 제어합니다

  • 자신의 공간에 입장하면 팔로우 목록의 모든 팔로우 목록이 표시됩니다. 판단 조건은 $_G[uid] = = $_GET[uid], 상호>=0 을 사용할 수 있는 경우입니다

  • 팔로잉 목록을 보기 위해 다른 사람의 공간에 들어갈 때 내가 팔로우하는 사용자가 필요한 경우 다음과 같이 표시되고, 그렇지 않으면 다음과 같이 표시될 수 있습니다. 여기서 판단 조건은 $_G[uid ] != $_GET[uid],mutual==-1 또는mutual==1이면 충분합니다. 여기에 상호=-1 플래그가 있는 이유는 무엇입니까? 데이터베이스 사전에는 이 로고가 없지만 실제 테스트 결과에는 있는 것으로 나타났습니다. Kaka도 소스 코드를 보고 판단했습니다. 이 판단을 먼저 알아두세요. 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>
  • 사용자 주의의 논리적 처리를 설명하는 그림을 그려보세요


Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리이제 사용자 A, 사용자 B, 사용자 C

  • 사용자 A가 사용자 C를 팔로우합니다

  • 그런 다음 사용자 B가 입장합니다 사용자 A의 공간 팔로우 목록에서 사용자 C를 볼 수 있습니다

  • 이때 사용자 B가 사용자 C를 팔로우했다면 이때 팔로우 버튼이 팔로우되며 이때 상호 가치는 be -1 (이런 상황은 다른 사람의 팔로우 목록에 가서 사용자를 확인하는 것입니다. 팔로우한 사람이 있으면 팔로우로 표시되며 상호 가치는 -1입니다)

  • 이때 사용자 B는 자신의 사용자 공간으로 돌아와 팔로우 목록을 확인합니다. 사용자 C가 자신의 목록에 있는 것으로 표시되지만 이때 상호 값은 0입니다. 그러나 사용자 C도 사용자 B를 팔로우하면 상호 값은 1

  • 그래서 사용자는 사용자 B를 자신의 공간의 팔로우 리스트로 간주합니다. 상호 값이 0과 1인지 확인합니다. 사용자 B가 사용자 A의 감시 목록을 보러 갈 때 -1과 1의 상호 값을 사용하여 판단

  • 팬의 논리적 처리를 설명하는 그림을 그려보세요

Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리현재 사용자 A를 사용하고 있는 사용자 B, 유저 C

  • 유저 A가 유저 C를 팔로우할 때 유저 C의 팬 리스트에는 유저 A

  • 가 포함됩니다. 이때 유저 B는 유저 C의 팬 리스트를 방문하여 유저 A만 있게 됩니다. 이때 유저 A의 팔로우는 status 역시 언팔로우 상태이고 상호값은 0

  • 사용자 A도 사용자 B를 팔로우하면 사용자 B는 사용자 C의 팬 목록에서 사용자 A의 상태를 확인하고 상호 값도 언팔로우됩니다. 하지만 사용자 B가 사용자 A를 팔로우한 후 이때 사용자 B는 사용자 C의 팬 목록에서 사용자 A의 상태를 확인하며 이는 사용자 A를 팔로우했음을 의미하며 상호 가치는 1입니다. 서로 팔로우

  • 그런데 A가 B를 팔로우하지 않을 때

  • 이렇게 B가 C의 팬리스트에서 A의 상태가 언팔로우 상태인 것을 보면 B가 A를 팔로우하면 그 상태가 팔로우가 되고, 상호 값이 -1

  • 이므로 팬 목록에서는 상호 값이 -1 또는 1일 때만 다음 상태이고 나머지는 팔로우 안 함 상태

  • 요약

    이라고 판단합니다.
  • 위는 모든 구현 과정입니다. 이 코드는 다음 기사에서 분석됩니다.

위 내용은 Discuz 모바일 단말기 2차 출시 : 팔로우 및 팬 페이지 및 팔로우 상태 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.