Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 18-04-2009 14:47:42

moontux
Membre

Empêcher les membres de poster deux (ou plus) messages consécutifs

Bonjour,

je souhaiterais savoir comment empêcher les membres d'un forum de poster deux ou trois (ou plus) messages à la suite (consécutivement) dans un même sujet.

Il y a bien une durée de 1 minute pendant laquelle les utilisateurs doivent patienter entre deux messages. Mais cette limitation s'applique partout, sur tous les forums.
Moi, je souhaite la meme fonctionnalité mais au sein d'un même topic pour éviter le flood, il y a des membres qui ne savent pas utiliser le lien Modifier pour  éditer le message, au lieu de cela, il postent un nouveau message juste après les leurs.

Y a t il un mod qui permet de faire ca ?

Merci bien d'avance de votre aide.

Hors ligne

#2 10-12-2009 00:19:14

moontux
Membre

Re : Empêcher les membres de poster deux (ou plus) messages consécutifs

Bonsoir,

pourriez vous svp m'aider pour ma question ?

Merci bien.

Hors ligne

#3 10-12-2009 09:48:10

fanf73
Wik-wiki

Re : Empêcher les membres de poster deux (ou plus) messages consécutifs

Je n'ai jamais croisé de mod pour cela, mais ça doit pouvoir se mettre facilement en place dans le fichier "post.php" :

Déjà chercher

$result = $db->query('SELECT f.id, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, t.subject, t.closed FROM '.$db->prefix.'topics AS t INNER JOIN '.$db->prefix.'forums AS f ON f.id=t.forum_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id='.$tid) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());

Dedans, chercher

t.closed

Ajouter après

, t.last_poster, t.last_post

Chercher

// Flood protection
    if (!$pun_user['is_guest'] && !isset($_POST['preview']) && $pun_user['last_post'] != '' && (time() - $pun_user['last_post']) < $pun_user['g_post_flood'])
        $errors[] = $lang_post['Flood start'].' '.$pun_user['g_post_flood'].' '.$lang_post['flood end'];

Remplacer par

// Flood protection
    if (!$pun_user['is_guest'] && !isset($_POST['preview']))
        {
        if($pun_user['last_post'] != '' && (time() - $pun_user['last_post']) < $pun_user['g_post_flood'])
            $errors[] = $lang_post['Flood start'].' '.$pun_user['g_post_flood'].' '.$lang_post['flood end'];
        else if ($tid)
            {
            if($cur_posting['last_poster'] == $pun_user['username'] && (time() - $cur_posting['last_post']) < $pun_user['g_post_flood'])
                $errors[] = $lang_post['Flood start'].' '.$pun_user['g_post_flood'].' '.$lang_post['flood end'];
            }
        }

Je n'ai pas testé mais je pense que ça fonctionne et que je vais l'installer sur mon forum ^^

Tu peux modifier les valeurs de la dernière condition et du message d'erreur si tu veux que le temps anti double-post soit un peu plus important et que le message d'erreur soit spécifique


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#4 10-12-2009 11:45:09

moontux
Membre

Re : Empêcher les membres de poster deux (ou plus) messages consécutifs

merci fanf73, je vais essayer de mon coté.

Hors ligne

#5 10-12-2009 20:33:26

Mpok
Néo Admin

Re : Empêcher les membres de poster deux (ou plus) messages consécutifs

Bon, je dois être fatigué... (certainement), mais j'ai rien compris.. roll
Déjà la question :
- puisqu'il y a un test sur le flood (global), pourquoi ne serait-il pas valable sur un même topic ? (mais j'avoue ne pas avoir vérifié).
Puis sur la réponse (de fanf73) :
- pourquoi rajouter last_post... EDIT : ça y est, j'ai compris, ce n'est pas la même requête. Ca commence à devenir plus clair.

Hors ligne

#6 10-12-2009 21:11:40

moontux
Membre

Re : Empêcher les membres de poster deux (ou plus) messages consécutifs

mdr

c'est simple, passé le délai d'anti-flood, un utilisateur peut continuer à écrire un nouveau message à la suite de son précédent message qui se trouve juste au dessus du nouveau >> c'est moche, il pourrait très bien modifier son précédent message

Je ne veux pas me prendre la tete avec les membres de mon forum.

Hors ligne

#7 10-12-2009 21:18:09

fanf73
Wik-wiki

Re : Empêcher les membres de poster deux (ou plus) messages consécutifs

C'est ce que je vois oui, il faudrait modifier la condition suivante

if($cur_posting['last_poster'] == $pun_user['username'] && (time() - $cur_posting['last_post']) < $pun_user['g_post_flood'])

par

if($cur_posting['last_poster'] == $pun_user['username'] && (time() - $cur_posting['last_post']) < 60*nb_minutes)

Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#8 10-12-2009 23:28:17

moontux
Membre

Re : Empêcher les membres de poster deux (ou plus) messages consécutifs

C'est bon fanf73, j'ai bien compris ton code et j'ai même anticiper ton dernier code ^^

Oui c'est bien ca je veux eviter le double post et forcer les membres à utiliser le lien Modifier !

J'ai meme rajouté un nouveau champ  dans la partie Admin pour les groupes :
Intervalle de contrôle de flood sur les messages consécutifs dans un même sujet

^^

Merci merci !

Maintenant, dans le meme genre d'idée, est il possible d'empecher un membre de citer son propre post qui est juste au dessus de son nouveau post ?

Hors ligne

Pied de page des forums