Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

astuces:reintegrer_membre [2010/06/30 14:53]
astuces:reintegrer_membre [2024/01/07 02:31] (Version actuelle)
Ligne 1: Ligne 1:
 +===== 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 :
 +<code sql>UPDATE smf_messages SET ID_MEMBER="xxx", posterEmail="yyy" WHERE ID_MEMBER="0" AND posterName="zzz"</code>
 +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 :
 +<code sql>SELECT posterTime FROM smf_messages where ID_MEMBER="xxx" ORDER BY ID_MSG ASC LIMIT 0,1</code>
 +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 :
 +<code sql>UPDATE smf_members SET dateRegistered="ttt" WHERE ID_MEMBER="xxx"</code>
 +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 :
 +<code sql>SELECT COUNT(*) FROM smf_messages WHERE ID_MEMBER="xxx"</code>
 +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 :
 +<code sql>UPDATE smf_members SET posts="ppp" WHERE ID_MEMBER="xxx"</code>
 +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.
 +<code sql>UPDATE smf_personal_messages SET ID_MEMBER_FROM="xxx" WHERE fromName="zzz"</code>
 +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 :
 +<code sql>UPDATE smf_recipients SET ID_MEMBER="xxx" WHERE ID_MEMBER="uuu"</code>
 +  * Pour 1.1 RCx :
 +<code sql>UPDATE smf_pm_recipients SET ID_MEMBER="xxx" WHERE ID_MEMBER="uuu"</code>
 +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 :
 +<code sql>UPDATE smf_topics SET ID_MEMBER_STARTED="xxx" WHERE ID_FIRST_MSG IN (SELECT ID_MSG FROM smf_messages WHERE id_member="xxx")</code>
 +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 ====
 +[[http://www.simplemachines.org/community/index.php?topic=42781.msg309699#msg309699|Sujet original]] qui a permis la mise au point de cette astuce
 +
 +[[http://www.simplemachines-fr.org/aforum/index.php?topic=916.msg7293#msg7293|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