>CMS 튜토리얼 >Discuz >discuz가 주의 집중 기능을 개발하는 방법

discuz가 주의 집중 기능을 개발하는 방법

咔咔
咔咔원래의
2020-05-07 12:08:524024검색

이 글에 구현된 기능:

1. 사용자 팔로우 및 언팔로우

2. 사용자와의 다음 관계 판단

성취 효과

팔로우를 클릭하면 팔로우로 표시되고 이후에는 다음과 같이 표시됩니다. 팔로우를 취소하면 다음과 같이 표시됩니다

discuz가 주의 집중 기능을 개발하는 방법

discuz가 주의 집중 기능을 개발하는 방법

구현 계획

사용자 공간의 입구는 home.php 파일이므로 먼저 home.php 파일부터 시작해야 합니다

열기 home.php 파일과 29행에서 사용법을 볼 수 있습니다. in_array는 주로 space와 spacecp 두 모듈에 초점을 맞춰 판단했습니다

우리는 먼저 space(space)와 spacecp(space 프로그램으로 번역됨)라는 두 단어를 알고 있습니다

discuz가 주의 집중 기능을 개발하는 방법

그런 다음 원래 기본값인 discuz 템플릿을 열어야 합니다(코드 변경 없이 직접 discuz 애플리케이션을 빌드하는 경우). 그런 다음 주제를 게시하고 마음대로 사용자 이미지를 클릭한 다음 주소 정보를 확인해야 합니다. 주소 표시줄.

스페이스 모듈에 들어간 것을 발견했습니다

discuz가 주의 집중 기능을 개발하는 방법

그러면 주소 표시줄에 따라 source/include/space/space_profile.php 파일을 찾을 수 있습니다. 하지만 이 파일에서는 Attention에 대한 코드를 찾을 수 없습니다.

하지만 이 파일에는 사용자 공간에 필요한 모든 데이터가 포함되어 있습니다. 예를 들어 사용자의 팬 수, 사용자 토픽 수, 사용자 팔로어 수, 사용자 친구 수 등이 있습니다. 이 값은 $space 변수에 저장되며 인터페이스는 템플릿에서 직접 사용됩니다. 이 필드에 대해서는 데이터베이스 사전에서 키워드를 직접 검색할 수 있습니다

그래서 우리는 spacecp 모듈을 살펴보고 있습니다. 이 디렉토리에서 다음 파일을 찾았습니다. follow의 영어 번역은 다음을 의미합니다.

다른 사람의 프로젝트를 배울 때는 먼저 문서를 읽어야 하고, 두 번째로 디렉터리 구조와 파일 이름을 바탕으로 그 의미를 추측해야 합니다.

discuz가 주의 집중 기능을 개발하는 방법

파일을 엽니다. source/include/spacecp/spacecp_follow.php . 파일 시작 부분에는 adddel이라는 두 가지 값이 있습니다. 그런 다음 op 변수를 사용하여 이를 수신합니다. 이 op 변수에 따르면 팔로우를 취소할 때 del 메소드

discuz가 주의 집중 기능을 개발하는 방법

에서 add에서 follow_not_follow_self 값을 찾았다는 것을 알 수 있습니다. 당신 자신. 이 값을 언어로 검색하여 확인할 수 있습니다. 여기서 source/include/spacecp/spacecp_follow.php가 다음

discuz가 주의 집중 기능을 개발하는 방법

을 구현한 파일이라는 것이 입증되었습니다. 다음 단계는 요청 방법입니다!

아래 화살표가 가리키는 4개의 $_GET 값에 따라 우리가 결정할 수 있는 요청 주소는

home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid={$space[uid]}&mobile=2

요청 주소가 결정될 수 있는 이유에 대해서는 나중에 소개하겠습니다. 이번 글은 함수에 중점을 두는 글입니다

discuz가 주의 집중 기능을 개발하는 방법

그리고 템플릿에 다음과 같은 코드를 작성하는데, 이는 그 사람을 중심으로 한 스타일입니다

          

discuz가 주의 집중 기능을 개발하는 방법

이때, 우리의 팔로우를 클릭하세요. 주의가 준비되었습니다. 그러면 언팔로우도 마찬가지입니다!

discuz가 주의 집중 기능을 개발하는 방법

다음으로 키워드 팔로우를 기반으로 데이터베이스 사전을 검색하고 사용자 팔로우 관계 테이블이 있는 것을 찾습니다

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模板里边进行判断

测试

没有关注时显示关注ta

discuz가 주의 집중 기능을 개발하는 방법

关注之后显示以关注

discuz가 주의 집중 기능을 개발하는 방법

总结

关于本文的实现关注功能。在网上的资料不是很多,但是我们也可以自己去研究实现。后期会一直推送discuz的文章。有任何问题,评论区见。

위 내용은 discuz가 주의 집중 기능을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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