Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pour autoriser les utilisateurs à modifier leur message durant un certain temps après la création.
Fichiers affectés : viewtopic.php, admin_groups.php, edit.php
BDD affectée : OUI
Aperçu:
Ouvrir viewtopic.php
Trouver :
if ($pun_user['g_edit_posts'] == '1')Remplacer par :
if ($pun_user['g_edit_posts'] == '0' || (time() - $cur_post['posted']) < $pun_user['g_edit_posts'])Ouvrir admin_groups.php
Trouver :
<input type="radio" name="edit_posts" value="1"<?php if ($group['g_edit_posts'] == '1') echo ' checked="checked"' ?> tabindex="11" /> <strong>Oui</strong> <input type="radio" name="edit_posts" value="0"<?php if ($group['g_edit_posts'] == '0') echo ' checked="checked"' ?> tabindex="12" /> <strong>Non</strong>
<span>Autoriser les utilisateurs de ce groupe à modifier leurs propres messages.</span>Remplacer par :
<input type="text" size="5" maxlength="5" name="edit_posts" value="<?php echo $group['g_edit_posts'] ?>" tabindex="11" />
<span>Nombre de secondes après que le message ait été envoyé pendant lesquelles les utilisateurs de ce groupe pourront le modifier. Mettre à 0 pour permettre la modification du message sans restriction dans le temps.</span>Trouver :
$edit_posts = isset($_POST['edit_posts']) ? intval($_POST['edit_posts']) : ($is_admin_group) ? '1' : '0';Remplacer par :
$edit_posts = isset($_POST['edit_posts']) ? intval($_POST['edit_posts']) : '1';Ouvrir edit.php
Trouver :
$result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, fp.post_polls, t.question, t.id AS tid, t.subject, t.posted, t.closed, p.poster, p.poster_id, p.message, p.hide_smilies FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id 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 p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());Remplacer par :
$result = $db->query('SELECT f.id AS fid, f.forum_name, f.moderators, f.redirect_url, fp.post_replies, fp.post_topics, fp.post_polls, t.question, t.id AS tid, t.subject, t.posted, t.closed, p.poster, p.posted AS post_posted, p.poster_id, p.message, p.hide_smilies FROM '.$db->prefix.'posts AS p INNER JOIN '.$db->prefix.'topics AS t ON t.id=p.topic_id 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 p.id='.$id) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());Trouver :
if (($pun_user['g_edit_posts'] == '0' ||Remplacer par :
if ((($pun_user['g_edit_posts'] !== '0' && (time() - $cur_post['post_posted']) > $pun_user['g_edit_posts']) ||Modif BdD
Ouvrir phpMyAdmin et exécuter dans une fenêtre SQL :
ALTER TABLE `pun_groups` CHANGE `g_edit_posts` `g_edit_posts` SMALLINT( 5 ) NOT NULL DEFAULT '300'J'ai fait un maximum de tests en espérant avoir corrigé tous les bugs.
Dernière modification par cramj (26-02-2010 19:27:43)
Hors ligne
Bonjour cramj,
Sur le forum, il y a un certain temps, une personne proposée cette modif pour empêcher la modification d'un message après un certains temps.
Le principe est il le même ? merci à toi.
Dans viewtopic, chercher :
if ($pun_user['g_edit_posts'] == '1')et remplacer par :
if ($pun_user['g_edit_posts'] == '1' && time() - $cur_post['posted'] < 60 * 15)45 mn pour l'exemple
Hors ligne
C'est à peu près pareil, mais l'intérêt de l'astuce de cramj est que tu peux paramétrer dans l'administration pour chaque groupe.
Par contre il faudrait que tu ajoutes un test dans le fichier edit.php, on peut encore modifier son message en entrant manuellement l'adresse de modification dans la barre d'adresse 
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
oups... j'avais oublié que j'avais modifié la BdD. Sans ça, on ne pourra mettre que 9 secondes
autant dire que cette mod ne servirait à rien
j'ai édité le premier post
Hors ligne