ToutSurTout.biz
FluxBB : Changer de groupe en fonction du nombre de messages


Cette astuce permet de faire passer automatiquement les membres d'un groupe défini à un autre groupe défini au moment où son nombre de messages dépasse une valeur.

Ouvrez post.php

Cherchez :

// If the posting user is logged in, increment his/her post count
        if (!$pun_user['is_guest'])
        {
            $low_prio = ($db_type == 'mysql') ? 'LOW_PRIORITY ' : '';
            $db->query('UPDATE '.$low_prio.$db->prefix.'users SET num_posts=num_posts+1, last_post='.$now.' WHERE id='.$pun_user['id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
        }

Remplacez par :

// If the posting user is logged in, increment his/her post count
        if (!$pun_user['is_guest'])
        {
            $low_prio = ($db_type == 'mysql') ? 'LOW_PRIORITY ' : '';
            $db->query('UPDATE '.$low_prio.$db->prefix.'users SET num_posts=num_posts+1, last_post='.$now.' WHERE id='.$pun_user['id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());

if($pun_user['group_id'] == ANCIEN_GROUPE && $pun_user['num_posts'] + 1 >= NB_SEUIL)
       $db->query('UPDATE '.$db->prefix.'users SET group_id = NOUVEAU_GROUPE WHERE id='.$pun_user['id']) or error('Unable to change user group', __FILE__, __LINE__, $db->error());
        }

Et remplacez les constantes suivantes par les valeurs que vous souhaitez :

    * ANCIEN_GROUPE : l'id du groupe avant changement
    * NB_SEUIL : le nombre de messages auquel le changement doit s'effectuer
    * NOUVEAU_GROUPE : l'id du nouveau groupe

Faites très attention au numéro de groupe que vous indiquez, en évitant par exemple de les faire passer automatiquement Modérateur, ou pire, Administrateur.