Maison >Tutoriel CMS >Discuz >Comment Discuz développe la fonction d'attention
Les fonctions implémentées dans cet article :
1. Suivre et ne plus suivre les utilisateurs
2. Déterminer la relation suivante avec l'utilisateur
Après avoir cliqué pour suivre, il sera affiché comme suivi, et après avoir désabonné, il sera affiché comme suivant
L'entrée de l'espace utilisateur est le fichier home.php, nous devons donc commencer par le fichier home.php en premier
Ouvrez le fichier home.php À la ligne 29, vous pouvez voir que in_array a été utilisé pour porter un jugement, en se concentrant sur les deux modules space et spacecp
Reconnaissons d'abord deux mots : space (espace) et spacecp (traduit par programme spatial)
Ensuite, nous devons ouvrir le modèle par défaut d'origine de discuz (c'est lorsque vous créez vous-même une application discuz sans aucune modification code), puis publiez un sujet et cliquez sur l'image d'un utilisateur. Affichez les informations d'adresse dans la barre d'adresse.
J'ai découvert que j'étais entré dans le module espace
Ensuite selon la barre d'adresse on peut trouver source/include/space/space_profile.php ce fichier. Mais dans ce fichier, je ne trouve aucun code sur l'attention.
Mais ce fichier contient toutes les données nécessaires sur l'espace utilisateur. Par exemple, le nombre de fans des utilisateurs, le nombre de sujets utilisateur, le nombre de followers des utilisateurs et le nombre d'amis des utilisateurs. Ces valeurs sont stockées dans la variable $space et l'interface est utilisée directement dans le modèle. Pour ces champs, vous pouvez rechercher directement des mots-clés dans le dictionnaire de la base de données
Nous jetons donc un œil au module spacecp Dans ce répertoire, nous avons trouvé le fichier suivant. La traduction anglaise de follow signifie suivre.
Lorsque nous apprenons les projets d'autres personnes, nous devons d'abord lire le document, et deuxièmement, nous devons deviner sa signification en fonction de la structure du répertoire et du nom du fichier
Ouvrir le fichiersource/include/spacecp/spacecp_follow.php. Il y a deux valeurs au début du fichier, une add et une del. Utilisez ensuite la variable op pour la recevoir. D'après cette variable op, on peut savoir que l'ajout d'un follow est add Lors de l'annulation du follow, la méthode del
on trouve une valeur dans addfollow_not_follow_selfJe comprends que vous ne pouvez pas faire attention à vous-même. Vous pouvez rechercher cette valeur dans la langue pour confirmer. Il a été prouvé ici que source/include/spacecp/spacecp_follow.php est le fichier qui implémente ce qui suit
La prochaine étape est de savoir comment pour faire une demande Drap de laine !
Selon les quatre valeurs $_GET pointées par les flèches ci-dessous, l'adresse de la demande que nous pouvons déterminer est
home.php?mod=spacecp&ac=follow&op=add&hash={FORMHASH}&fuid={$space[uid]}&mobile=2Quant à la raison pour laquelle la demande L'adresse peut être déterminée, nous la présenterons plus tard. , l'objectif de cet article est de se concentrer sur la fonction
Ensuite, nous écrivons le code suivant dans le modèle, qui est le style qui se concentre dessus
关注taCliquez pour suivre, maintenant nous sommes prêts à suivre. Ensuite, il en va de même pour ne plus suivre ! Ensuite, nous recherchons dans le dictionnaire de la base de données en fonction du mot-clé follow et constatons qu'il y aura une table de relation de suivi des utilisateurs
打开数据库查到pre_home_follow 这个表,就会发现有一条数据就是关注者跟被关注者。
在上文中我们实现了关注与取消关注,但是当我们关注了用户后,是不是需要显示已关注 或者 关注ta的字样
我们打开数据库字典搜索pre_common_member_count 用户统计表。
在这个表里边我们发现有收听数量和听众数量。那么对应的就是关注数量和粉丝数量
然后打开文件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的文章。有任何问题,评论区见。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!