MyBB.support, le portail francophone de MyBB
[Réglé] Changement automatique - Version imprimable

+- MyBB.support, le portail francophone de MyBB (https://mybb.fr)
+-- Forum : MyBB.fr (https://mybb.fr/forum-1.html)
+--- Forum : Support (https://mybb.fr/forum-5.html)
+--- Sujet : [Réglé] Changement automatique (/thread-4532.html)

Pages : 1 2


Changement automatique - damien62 - 01-08-2011

Bonjour,

Je voudrais savoir si il existe un moyens pour changer un groupe automatiquement.

Je détails
Lorsqu'une personne viens sur mon Forum elle doit posé une candidature des que je déplace la candidature dans acceptée,
je voudrais savoir si on peut changer le groupe automatiquement ?
Postulant: message encore dans le forum en attente
Message validé,on le déplace et la je groupe de la personne devient recrue.


Cordialement,


RE: Changement automatique - Saphir - 01-08-2011

C'est faisable, mais je ne pense pas qu'il existe un plugin existant qui le fasse.


RE: Changement automatique - damien62 - 01-08-2011

Merci de ta réponse,je vais essayer de faire quelques recherche le temps qu'une personne de MyBB me répondre.


RE: Changement automatique - Saphir - 01-08-2011

Ben je pourrais te dire comment le faire "à la barbare", mais si une meilleure solution existe, il vaut mieux choisir cette meilleure solution... Big Grin

Un petit exemple de ce qu'on pourrait faire "à la barbare" en php :

- Lister les messages dans la section "Acceptées" ;
- Tant qu'il y a des messages à traiter :
--- Si l'auteur n'est pas dans le groupe "Recrues" :
----- Mettre l'auteur dans le groupe "Recrues" ;
--- Passer au message suivant ;

Donc, en PHP, un truc dans le genre... (Toujours "à la barbare"...)

Code PHP :
$dbm = new PDO("mysql:host=hotebasedonnees;dbname=nombasedonnees""nomutilisateur""motdepasse");
$query $dbm->query("SELECT uid FROM mybb_threads WHERE fid = X"); // X l'ID de la section "Acceptées".
while ($data $query->fetch()) {
    
$query2 $dbm->query("SELECT usergroup FROM mybb_users WHERE uid = " $data['uid']);
    
$data2 $query2->fetch();
    if (!
$data2['usergroup'] == Y) { // Y l'ID du groupe "Recrues".
        
$dbm->exec("UPDATE mybb_users SET usergroup = Y WHERE uid = " $data['uid']);
    }


Quelques erreurs, je viens de les rectifier.

J'ai peut-être oublié de te dire où mettre ça (si toutefois tu voulais essayer), je pense que ça doit fonctionner si tu met ce bout de code avant l'accolade fermante de la ligne 218 dans le fichier ./moderation.php.

Il faudra préciser : l'hôte de la base de données (souvent localhost), le nom de la base de données, le nom d'utilisateur de la base de données, et le mot de passe, puis, plus bas dans le code, remplacer X par l'identifiant de la section "Acceptées" (tu le trouveras en ouvrant ladite section, dans la barre d'adresse, c'est le numéro juste après fid=), et Y par l'identifiant du groupe "Recrues", tu le trouveras dans le panneau d'administration, en cliquant sur le nom du groupe, dans la barre d'adresses, c'est le numéro juste après gid=.

J'espère que ça fonctionnera, sinon, dis moi l'erreur. (Si tu trouves mieux ailleurs, dis le moi, j'aimerais bien savoir aussi ! :p)


RE: Changement automatique - damien62 - 01-08-2011

Merci,je test ça de suite.


EDIT: je vien de mettre le code j'ai créer un compte test"postulant" et rien ne marche.
Lien du forum en cas de besoin: http://unlimited-wow.c4.fr/index.php


RE: Changement automatique - Saphir - 01-08-2011

Tu as bien remplacé X par 7, Y par l'id du groupe des "Recrues", et tu as bien modifié les valeurs de la première ligne ?


RE: Changement automatique - damien62 - 01-08-2011

Oui j'ai tout modifier comme il faut.


RE: Changement automatique - Saphir - 01-08-2011

Je peux voir le code tel que tu l'as entré (tu peux cacher le mot de passe) ?


RE: Changement automatique - damien62 - 01-08-2011

Code PHP :
            $dbm = new PDO("mysql:host=#;dbname=#""#""#");
$query $dbm->query("SELECT uid FROM mybb_threads WHERE fid = 7"); // X l'ID de la section "Acceptées".
while ($data $query->fetch()) {
    
$query2 $dbm->query("SELECT usergroup FROM mybb_users WHERE uid = " $data['uid']);
    
$data2 $query2->fetch();
    if (!
$data2['usergroup'] == 11) { // Y l'ID du groupe "Recrues".
        
$dbm->exec("UPDATE mybb_users SET usergroup = Y WHERE uid = " $data['uid']); 



RE: Changement automatique - Saphir - 01-08-2011

Il faut que tu remplace le Y par l'identifiant du groupe (apparemment 11) dans la dernière ligne.
Juste un truc aussi, ce script ne se lance que lorsque tu déplaces un sujet, donc pour que le transfert soit effectif, il faut qu'il y ait un déplacement de sujet.


RE: Changement automatique - damien62 - 01-08-2011

Oui c'est ce que je voulais déplacé de En attente a accepté modifie le groupe en recrue.

J'avait pas vu le second Y,
Je vais essayer


RE: Changement automatique - Saphir - 01-08-2011

Essaye et dis moi. Smile


RE: Changement automatique - damien62 - 01-08-2011

Même Resultat


RE: Changement automatique - Saphir - 01-08-2011

Bizarre, je vois pas mon erreur...

Est-ce qu'à l'installation tu as changé le préfixe des tables ?


RE: Changement automatique - damien62 - 01-08-2011

J'ai mis mybb_


RE: Changement automatique - Saphir - 01-08-2011

Donc ça c'est bon, est-ce que tu as bien mis l'hôte, le nom de la base, et les identifiants de la base de données, tels qu'ils te sont fournis par ton hébergeur ?


RE: Changement automatique - damien62 - 01-08-2011

Oui,j'ai même vérifier sur le config.php pour être sûr


RE: Changement automatique - Saphir - 01-08-2011

Alors j'ai peut-être fait une erreur de positionnement. Enlève le code, et essaye de le mettre à la ligne 892 :
Code PHP :
        $plugins->run_hooks("moderation_move");
        
// ICI !
        
$forumselect build_forum_jump(""''1''0true''"moveto"); 



RE: Changement automatique - damien62 - 01-08-2011

Aucun changement.


RE: Changement automatique - Saphir - 01-08-2011

Essaye à la ligne 1791
Code PHP :
        // ICI !
        
moderation_redirect(get_forum_link($moveto), $lang->redirect_inline_threadsmoved); 

Sinon je vois pas (spyto, exdiogene, à l'aide)... :p


 Utilitaire de traduction fourni par Regentronique