Problème nombre de membres dans l'annuaire

15 sujets de 1 à 15 (sur un total de 17)
  • Auteur
    Messages
  • #5457
    Photo du profil de Saorrie
    Saorrie
    Participant

    Version WP : version 3.9–fr_FR
    Version BP : Version 2.0
    Hébergement : OVH perso

    Liste des plugins :

    Anti-spam by CleanTalk
    bbPress
    bbPress Enable TinyMCE Visual Tab
    BP-Album
    BuddyPress
    BuddyPress Activity Comment Notifier
    DH Mega Menu
    GD bbPress Attachments
    Hana Flv Player
    Head Meta Data
    iFlyChat
    Members
    Revolution Slider
    Widgetkit
    Importateur WordPress
    WP-UserOnline
    WP Hide Dashboard
    WP Super Cache

    Bonjour,

    J’ai un problème avec le nombre total de membres sur mon site. L’annuaire des membres indique qu’il y a 868 membres alors qu’il n’y en a en fait que 398.

    Voici le lien vers la pages :

    http://www.sacra-unita.com/members/

    De plus il y a au total 44 pages pour ces membres. Parfois des pages avec un seul membre.

    ça fait plus d’un mois que je cherche d’ou vient le problème et j’avoue que la je désespère un peu.

    D’avance merci pour votre aide.

    Saorrie

    #5467
    Photo du profil de Dan
    Dan
    Admin bbPress

    Bonjour,

    ah le nettoyage de printemps is very tendance et tu ne vas pas y échapper. 👿 Ce souci de décalage de compteurs vient des màj successives de BP avec des chiffres en provenances des tables wp_users et wp_usermeta. Y’a des trucs qui ont évolués…

    Puisque tu es en BP 2.0, vérifie que la synchro des membres WP/BP est activée (settings BP) puis lance l’outil de réparation de BuddyPress (outils > buddypress) et fait recompter les membres.

    Ensuite tu vérifies le chiffre indiqué dans l’admin des membres et celui qui figure sur l’annuaire des membres et tu compares au nombre de lignes qui est dans wp_users.
    Profite d’être sur l’admin des utilisateurs pour regarder dans la liste le champ « Sites ». Celui-ci doit contenir l’url de ton site. Tu vires tous les membres dont ce champ est vide. Tant que tu y est, tu vires aussi tous ceux dont le champ « Nom » est également vide.
    Il faut le faire depuis l’admin, car derrière cela effacera aussi des choses dans la table usermeta (mais désolé, je ne sais pas vraiment quoi exactement), mais elle maigrit proportionnellement.
    Théoriquement, les chiffres devraient ensuite coïncider.

    A vue de nez tu en as pour 2-3 heures vu le nombre d’inscrits réels.
    (si ça peut te consoler, j’ai fait exactement cela ce we sur bp-fr parce que j’avais le même problème de comptage depuis des siècles !)

    Pour info: wp_signups devrait être vide et se porte bien si elle est vidée régulièrement, tout comme wp_registration_log qui devrait rester vide, sauf si tu as des inscrits en cours d’activation.

    A propos des pages de membres plus ou moins garnies, c’est plutôt un problème de template. Une régle CSS à revoir ou alors un conflit JS à résoudre (à une époque Salutation merdouillait bien bien bien à ce niveau). Désactive tous les plugins sauf BP et active le temps du test Twenty Thirteen, puis réactive un par un les plugins, puis le thème.

    Quant aux plugins, ouhlà, y’en a un paquet (en trop) !
    – WP-UserOnline pas besoin AMHA, BP embarque un widget identique en natif !
    – WP super cache: tu n’as « que » 398 membres et tous ne jouent pas ensemble le même jour à la même heure je présume. Manque un ou deux zéros au chiffre pour avoir l’utilité de la chose. Sert à rien à ce stade.
    – WP Importer. Tu emménages des sites WP en permanence toi ?
    – Widgetkit ??? Connais pas, mais vu le nom, ça sert à fabriquer des widgets ? Plus besoin ! WP 3.9 sait faire tout seul ou presque, en tous cas les paramétrer sans les activer d’abord par exemple. Et maintenant que le site est en prod, y’en a peut-être plus besoin ?
    – WP Hide Dashboard ? Quelques lignes de code vs. un plugin, le choix est vite fait. Pas besoin si tu suis les instructions d’Aurélien (y’en a plein d’autres sur son site).

    Dernier conseil: si tu ne te sers pas/plus de certains plugins, ce qui semble être le cas, dégage-les du site. Ca fera autant de sources d’em… en moins.

    Quand je te parlais de nettoyage !

    Et le meilleur pour la fin: le thème Salutation est une plaie avec BP (mais ça on le savait déjà sur ce forum). 🙂

    #5468
    Photo du profil de Saorrie
    Saorrie
    Participant

    Merci pour ta réponse rapide 🙂

    J’ai utilisé l’outil de réparation de BuddyPress et rien à changer.

    Dans l’admin utilisateur je n’ai pas dans la liste le champ « Sites »

    Je n’ai que :

    Identifiant
    Nom
    E-mail
    Rôle sur le site
    Articles
    Rôles sur ce forum
    Other Roles

    Voici l’admin utilisateur

    admin utilisateur

    Voici le nombre dans la table wp-users

    database

    Et voici le nombre dans l’annuaire des membres

    annuaire

    Dans l’admin utilisateur je n’ai que 93 lignes pourtant.

    J’ai aussi désactivé tous les plugins mais rien y change. L’erreur doit venir d’une table peut-être? Dans la table wp-usermeta j’ai un total de 15 125 lignes.

    C’est vraiment étrange Oo

    #5469
    Photo du profil de Dan
    Dan
    Admin bbPress

    Oui pardon, la colonne « Site » n’est affiché que dans la config en multisite (bp-fr par ex.), mais ça ne change rien par rapport au reste.

    Si les membres inscrits sont 95 dans wp_user et 93 dans l’admin, c’est plutôt ok de ce côté. L’essentiel est que ça colle en front et backend !
    Reste wp_usermeta qui est plus difficile à purger. Trie-la par user_ID depuis phpmyadmin et compare avec les user_id qui sont dans wp_users. Il y a peut-être des trucs qui traînent qui datent d’une version antérieure (~1.6) et qui n’étaient pas forcément supprimés lorsqu’on supprimait un utilisateur. Il faudra aussi vérifier l’item last_activity dans cette table… (un peu de lumière à ce propos sur ce ticket).

    Que tu aies +2 15 000 lignes n’est pas surprenant compte-tenu du nombre de plugins.

    Une fois que tu auras fait le plus gros du nettoyage à la main, je te recommande d’utiliser régulièrement WP Cleanfix, un super outil de nettoyage de bdd. Et quand il ne sert pas, tu le désactives.

    #5470
    Photo du profil de Saorrie
    Saorrie
    Participant

    Merci le problème est à moitié résolu 🙂

    J’ai nettoyé quelques tables en faisant une requête « DELETE FROM nom de la table WHERE user_id NOT IN (SELECT ID FROM wp_users) »

    Du coup dans l’admin le nombre est juste mais toujours pas dans l’annuaire. (bien qu’il soit passé de 868 à 751)

    Malheureusement je ne comprend pas l’anglais pour le ticket qui parle à ce propos 🙁

    Cependant j’ai pu constaté plusieurs lignes identiques pour le même user_id pour l’item « last_activity »

    Exemple :

    Textes complets umeta_id user_id meta_key Croissant meta_value
    Modifier Modifier Copier Effacer 1858 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1859 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1860 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1861 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1862 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1863 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1864 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1865 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1866 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1867 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1868 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1869 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1870 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1871 76 last_activity 2013-12-23 07:17:21
    Modifier Modifier Copier Effacer 1872 76 last_activity 2013-12-23 07:17:21

    #5471
    Photo du profil de Dan
    Dan
    Admin bbPress

    Logiquement, une ligne = une activité, surtout que celle-ci se produit à la même h:m:s !
    Si le user 76 existe, tu gardes une seule ligne ! s’il n’existe pas, tu vires tout.
    Si tu en as d’autres du même genre, il te suffit d’appliquer le même raisonnement.

    Maintenant je ne saurais te dire pourquoi il y a autant de duplicate entries. Tu as des membres qui se sont inscrit mais qui n’ont jamais rien fait, du coup le comptage montre un écart entre wp_users (inscrit) et last_activity (absent s’il n’ont jamais rien fait ou UNE last_activity (la dernière activité). La duplication pour certaines de ces lignes ajoute bien sûr à la confusion…. C’est en substance ce qui est dit dans le ticket d’ailleurs.
    Voyons si @boone ou @imath réagissent à ton problème.

    Pour ma part, je testerai plusieurs choses.
    1) créer un nouveau user Toto (avec le statut d’abonné) depuis l’admin utilisateurs
    2) se connecter en tant que Toto
    3) nouer un contact avec l’admin du site (déconnecter Toto et connecter en admin pour valider, puis déconnecter admin et reconnecter Toto)
    4) publier une note sur l’activité du site
    5) envoyer un message à l’admin
    6) vérifier que ces activités s’affichent sur le site et sur l’activité du profil de Toto.
    7) aller dans la base et regarder dans usermeta, pour voir si c’est dupliqué.

    Tu avais démarré ce site avec quelle version de BP ?

    #5472
    Photo du profil de Saorrie
    Saorrie
    Participant

    Bonjour,

    J’ai démarré avec la version dans le thème salutation. Je ne sais plus trop.

    J’ai nettoyé l’item last_activity, du coup j’avais plus que 5 pages membres au lieu de 44 pages dans l’annuaire. Ce qui est génial.

    Mais le nombre de membre restait à 751.

    En fait le nombre qui s’affiche ce n’est pas le total des membres mais le total des activités des membres je pense.

    J’ai donc modifié la fonction bp_get_total_member_count dans le fichier bp-core-template.php :

    function bp_get_total_member_count() {
    		return apply_filters( 'bp_get_total_member_count', bp_core_get_active_member_count() );
    	}
    	add_filter( 'bp_get_total_member_count', 'bp_core_number_format' );

    Par

    function bp_get_total_member_count() {
    		return apply_filters( 'bp_get_total_member_count', bp_core_get_total_member_count() );
    	}
    	add_filter( 'bp_get_total_member_count', 'bp_core_number_format' );

    Et a présent le nombre exacte des membres s’affiche 🙂

    Merci beaucoup pour ton aide. Sans toi je n’y serais pas arrivé 🙂

    PS: à bientôt sur un autre poste, si je ne trouve pas la solution pour un soucis de notification :p

    #5473
    Photo du profil de Dan
    Dan
    Admin bbPress

    You’re welcome !
    Bravo pour cette intervention. Mais une remarque si tu as modifié le fichier original, tu vas tout perdre à la prochaine mise à jour.
    Je te recommande vivement d’utiliser une fonction perso depuis le functions.ph du thème ou depuis plugins/bp-custom.php (ou dans salutation-paralelus/framework/data !!!)

    Par ailleurs c’est un peu ambigü comme phrase: J’ai démarré avec la version dans le thème salutation
    Ca pourrait signifier que le thème et BP ne font qu’un ! Plus ou moins en effet et c’est hors standards WP ! Par conséquent, tu dois vérifier si par hasard le thème n’inclue pas une vieille version de bp-core-template.php

    Salutation incorpore pas mal d’éléments BP dans ses fichiers. A la racine du thème, mais aussi dans le dossier framework > theme-function, etc
    Une vraie plaie pour mettre proprement à jour, je dis 🙂

    Pour info, ton hack est une régression de BP 2.0 vers 1.6. Cet avertissement se trouve dans le fichier bp-core-template.php de la 2.0

    `/**
    * Return the total member count in your BP instance.
    *
    * Since BuddyPress 1.6, this function has used bp_core_get_active_member_count(),
    * which counts non-spam, non-deleted users who have last_activity.
    * This value will correctly match the total member count number used
    * for pagination on member directories.
    *
    * Before BuddyPress 1.6, this function used bp_core_get_total_member_count(),
    * which did not take into account last_activity, and thus often
    * resulted in higher counts than shown by member directory pagination.
    *
    * @return int Member count.
    */`

    #5474
    Photo du profil de Dan
    Dan
    Admin bbPress

    Pour info, ce problème mérite un débogage en règle. J’ai interpellé Boone et imath sur Twitter. Affaire à suivre de près !!!

    #5475
    Photo du profil de imath
    imath
    Participant

    Bonjour @dan, @madoninna78,

    As-tu fait une sauvegarde de la base de données avant de procéder à la mise à jour de BuddyPress pour la 2.0 ?

    Tu écris « ça fait plus d’un mois que je cherche d’ou vient le problème et j’avoue que la je désespère un peu. » Donc cela veut dire que le problème de dénombrement existait avant la mise à jour de BuddyPress pour la 2.0 ?

    idéalement, j’aimerais pouvoir voir la table wp_usermeta d’avant l’upgrade, sinon, te souviens-tu si dans la table des usermetas il y avait pour un même utilisateur plusieurs meta ayant pour meta_key ‘last_activity’ ?

    Je vais demander à @dan de se rapprocher de toi afin qu’il puisse me fournir :
    – si elle existe toujours dans tes sauvegardes: la table wp_usermeta d’avant l’upgrade
    – la table wp_usermeta et bp_activity actuelle.

    En attendant, pourrais-tu effectuer le test suivant :
    1. Créer un utilisateur fictif
    2. Te logger avec les éléments de connexion de cet utilisateur
    3. Vérifier pour cet utilisateur s’il existe un ou plusieurs usermeta last_activity
    4. Vérifier pour cet utilisateur s’il existe une ou plusieurs activité de type last_activity

    A+

    #5476
    Photo du profil de Saorrie
    Saorrie
    Participant

    Bonjour @imath,

    J’ai effacé toutes les lignes NULL dans la table wp_activity. Du coup tout correspond à présent. Je n’ai plus de problèmes. Le nombre de membres est exact et le nombre des derniers actifs est cohérent.

    http://www.sacra-unita.com/members/

    J’ai effacé toutes les lignes qui étaient identiques de type last_activity également.

    Il ne me reste plus qu’à supprimer toutes les lignes en double voir triple ou plus dans wp_usermeta.

    Je ne m’y connais pas en sql donc je fais ligne par ligne. L’idéal aurait été d’exécuter une requête pour supprimer tous les doublons dans la table mais uniquement les doublons du champ ‘meta_key’. Parfois trois mêmes lignes « Nom » pour le même utilisateur par exemple.

    Je m’en suis rendu compte il y a un mois, mais peut-être le problème était la depuis longtemps.

    Je me demande si ce n’est pas dû au fait que les utilisateurs en s’inscrivant ne recevait pas l’e-mail d’activation et du coup se sont réinscris plusieurs fois et à cause des inscriptions spam que je n’ai plus depuis que j’ai acheté le plugin CleanTalk…

    J’ai plusieurs sauvegardes de la base de données à des dates différentes.

    Je vais tester en créant un utilisateur fictif pour voir.

    Merci pour votre aide.

    #5477
    Photo du profil de Saorrie
    Saorrie
    Participant

    J’ai testé en créant un utilisateur et aucun problème à signaler. Tout est correcte pour l’instant.

    #5478
    Photo du profil de Dan
    Dan
    Admin bbPress

    Plus de problème ? Hum… 😉 Si ton hack est resté en place, il y a toujours le problème, parce que ça devrait fonctionner correctement sans lui. Donc refaire le test avec le fichier original et pas celui que tu as modifié.

    Peux-tu mettre sur le buddydrive de ton profil un fichier .sql contenant les 3 tables demandées par @imath, stp ? Celles de la sauvegarde la plus proche de la màj vers 2.0 si possible (en tous cas datant d’avant le 16 avril 2014). Merci.

    #5479
    Photo du profil de imath
    imath
    Participant

    Si la création d’un utilisateur ne génère pas de usermeta / activité de type last_activity en double, c’est plutôt intéressant.

    vu ton hébergement et la liste de plugins installés, je me demande si :
    « un utilisateur qui s’inscrirait et aurait un temps de réponse un peu long et rafraîchirait la page à la barbare plusieurs fois »
    ce que ça donnerait dans tes usermetas..

    A+

    #5482
    Photo du profil de Saorrie
    Saorrie
    Participant

    J’ai posté deux fichiers sql en visibilité priver vous y avez accès ?

15 sujets de 1 à 15 (sur un total de 17)
  • Le sujet ‘Problème nombre de membres dans l'annuaire’ est fermé à de nouvelles réponses.
Aller à la barre d’outils