Réintégrer un membre précédemment désinscrit

Cette astuce peut vous être utile si vous vous trouvez dans le situation suivante : vous avez supprimé le compte d'un membre sans effacer ses messages, et vous souhaitez réintégrer ce membre en lui réattribuant ses anciens messages.

:!: Ce tutoriel a été testé avec SMF 1.0.x mais, a priori, il doit fonctionner avec SMF 1.1. Si vous avez pu en faire l'expérience, merci d'en donner les résultats sur cette page ou sur le forum.

Pré-requis

  • Le membre que vous souhaitez réintégrer possède un nouveau compte (c'est à dire qu'il s'est réinscrit, ou qu'en tant qu'administrateur vous lui avez créé un compte)
  • Vous possédez et savez utiliser un outil de gestion de base de données (phpmyadmin, eskuel, etc.)
  • Vous connaissez le pseudo utilisé par l'utilisateur sur son ancien compte, et son numéro d'inscrit pour son nouveau compte

:!: Veuillez noter que l'utilisateur à réintégrer peut avoir posté des messages sous son nouveau compte ou pas : cela n'a aucune importance et ne jouera en rien sur les anciens messages à lui réattribuer.

Procédure

C'est parti ! Suivez dans l'ordre les étapes suivantes.

Réattribuer les anciens messages

Il vous suffit d'exécuter la requête suivante :

UPDATE smf_messages SET ID_MEMBER="xxx", posterEmail="yyy" WHERE ID_MEMBER="0" AND posterName="zzz"

en remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • yyy par le mail actuel de l'utilisateur
  • zzz par l'ancien pseudo de l'utilisateur (que ce soit ou non le même que l'actuel)

Modifier la date d'inscription de l'utilisateur

En réattribuant les anciens messages de l'utilisateur à son nouveau compte, un problème se pose : la date de son premier message est antérieure à sa date d'inscription ! Cela peut mener à des incohérences, notamment dans les statistiques. Pour résoudre ce problème, exécutez la requête suivante :

SELECT posterTime FROM smf_messages WHERE ID_MEMBER="xxx" ORDER BY ID_MSG ASC LIMIT 0,1

en remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur

et notez soigneusement le résultat obtenu (il s'agit de la date du tout premier message). Exécutez ensuite la requête suivante :

UPDATE smf_members SET dateRegistered="ttt" WHERE ID_MEMBER="xxx"

en remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • ttt par le numéro précédemment noté

Rafraîchir le nombre de messages postés

Pour ce faire, il faut exécuter cette requête :

SELECT COUNT(*) FROM smf_messages WHERE ID_MEMBER="xxx"

en remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur

et notez, là encore, le résultat obtenu. Enfin, exécutez la requête suivante :

UPDATE smf_members SET posts="ppp" WHERE ID_MEMBER="xxx"

en remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • ppp par le numéro précédemment noté

Réattribuer les anciens messages personnels

Cette modification permet de récupérer les messages personnels envoyés par cet utilisateur.

UPDATE smf_personal_messages SET ID_MEMBER_FROM="xxx" WHERE fromName="zzz"

en remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • zzz par l'ancien pseudo de l'utilisateur (que ce soit ou non le même que l'actuel)

Pour réattribuer les messages personnels reçus par ce membre, il faut connaître l'ancien numéro d'inscrit de l'utilisateur et exécuter l'une des requêtes suivantes selon votre version de SMF.

  • Pour 1.0.x ou 1.1 Beta 3 Public :
UPDATE smf_recipients SET ID_MEMBER="xxx" WHERE ID_MEMBER="uuu"
  • Pour 1.1 RCx :
UPDATE smf_pm_recipients SET ID_MEMBER="xxx" WHERE ID_MEMBER="uuu"

en remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur
  • uuu par l'ancien numéro d'inscrit de l'utilisateur

Réattribuer les anciens sujets

Il suffit d'exécuter la requête suivante :

UPDATE smf_topics SET ID_MEMBER_STARTED="xxx" WHERE ID_FIRST_MSG IN (SELECT ID_MSG FROM smf_messages WHERE id_member="xxx")

en remplaçant :

  • xxx par le numéro d'inscrit actuel de l'utilisateur

Finalisation

Si vous avez suivi ces étapes, l'utilisateur doit être correctement réintégré à votre forum. Cependant veuillez noter que, si votre forum dispose de plusieurs groupes d'utilisateurs fondés sur le nombre de messages postés, les informations relatives à ces groupes seront rafraîchies lorsque l'utilisateur aura posté un nouveau message.

Liens

Sujet original qui a permis la mise au point de cette astuce

Sujet secondaire, où le problème de groupe se résout tout seul ;)

astuces/reintegrer_membre.txt · Dernière modification: 2024/01/07 02:31 (modification externe)
Haut de page
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0