Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
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
Bonsoir,
pourriez vous svp m'aider pour ma question ?
Merci bien.
Hors ligne
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.closedAjouter après
, t.last_poster, t.last_postChercher
// 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
merci fanf73, je vais essayer de mon coté.
Hors ligne
Bon, je dois être fatigué... (certainement), mais j'ai rien compris.. 
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

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
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
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