Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Bonjour, tout d'abord merci à la communauté fr pour le support de fluxbb.
J'aimerai savoir si un mod ou un hack existe permettant l'envoie automatique d'un message privé ou d'une notification à l'auteur du sujet lors du déplacement de son sujet.
Ou si une modif est faisable 
Hors ligne
Oui c'est faisable.
Tout d'abord il te faut la mod mp installé sur ton forum.
Ensuite le reste se joue au niveau du moderate.php
En théorie il suffit simplement de récupérer l'id et le pseudo de l'auteur du topic en fonction de l'id de celui ci, pis de faire une requête sql permettant "d'envoyer" un mp.
Le tout étant assez complexe, je vais te donner la solution.
Moderate.php chercher :
// Move one or more topics
if (isset($_REQUEST['move_topics']) || isset($_POST['move_topics_to']))
{Ajouter ensuite :
global $pun_config, $pun_user;
// S'il n'y a qu'un seul topic à déplacer
if(isset($_REQUEST['move_topics'])){
$tid = (int) $_REQUEST['move_topics'];
// On récupère les infos de l'auteur
$sql = $db->query('SELECT p.poster_id, p.poster, t.subject FROM '.$db->prefix.'posts AS p LEFT JOIN '.$db->prefix.'topics AS t ON p.id = t.first_post_id WHERE t.id = '.$tid);
$data = $db->fetch_assoc($sql);
// On défini les variables
$now = time();
$dest = array('id' => (int) $data['poster_id'], 'username' => $data['poster']);
$titre = 'Votre topic '.$data['subject'].' vient d\'être déplacé.'; // Le titre du mp à envoyer
$message = 'Bonjour,'."\n". // Le message du mp à envoyer
'Nous vous informons que votre topic [url='.$pun_config['o_base_url'].'/viewtopic.php?id='.$tid.']'.$data['subject'].'[/url] a été déplacé dans un autre forum.'."\n".
'Merci de votre compréhension, pour plus de détail n\'hésitez pas à contacter un membre du staff.'."\n\n".
'Cordialement';
// On récupère le shared_id
$result_shared = $db->query('SELECT last_shared_id FROM '.$db->prefix.'messages ORDER BY last_shared_id DESC LIMIT 1') or error('Unable to fetch last_shared_id', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result_shared))
$shared_id = '1';
else{
$shared_result = $db->result($result_shared);
$shared_id = $shared_result + '1';
}
// On execute les requêtes sql qui permettent d'ajouter le mp en bdd
$db->query('INSERT INTO '.$db->prefix.'messages (shared_id, last_shared_id, owner, subject, message, sender, receiver, sender_id, receiver_id, sender_ip, hide_smilies, posted, show_message, showed) VALUES(\''.$shared_id.'\', \''.$shared_id.'\', \''.$dest['id'].'\', \''.$db->escape($titre).'\', \''.$db->escape($message).'\', \''.$db->escape($pun_user['username']).'\', \''.$db->escape($dest['username']).'\', \''.$pun_user['id'].'\', \''.$db->escape($dest['id']).'\', \''.get_remote_address().'\', "0", \''.$now.'\', "1", "0")') or error('Unable to send the message.', __FILE__, __LINE__, $db->error());
$new_mp = $db->insert_id();
$db->query('UPDATE '.$db->prefix.'messages SET last_post_id='.$new_mp.', last_post='.$now.', last_poster=\''.$db->escape($pun_user['username']).'\' WHERE shared_id='.$shared_id.' AND show_message=1 AND owner='.$dest['id']) or error('Unable to update the message.', __FILE__, __LINE__, $db->error());
$db->query('UPDATE '.$db->prefix.'users SET num_pms=num_pms+1 WHERE id='.$dest['id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
// S'il y a plusieurs topics à déplacer
}else{
$tids = array_map('intval', explode(',', $_POST['move_topics_to']));
// On parcourt toutes les id une à une
foreach($tids AS $tid){
// On récupère les infos de l'auteur
$sql = $db->query('SELECT p.poster_id, p.poster, t.subject FROM '.$db->prefix.'posts AS p LEFT JOIN '.$db->prefix.'topics AS t ON p.id = t.first_post_id WHERE t.id = '.$tid);
$data = $db->fetch_assoc($sql);
// On défini les variables
$now = time();
$dest = array('id' => (int) $data['poster_id'], 'username' => $data['poster']);
$titre = 'Votre topic '.$data['subject'].' vient d\'être déplacé.'; // Le titre du mp à envoyer
$message = 'Bonjour,'."\n". // Le message du mp à envoyer
'Nous vous informons que votre topic [url='.$pun_config['o_base_url'].'/viewtopic.php?id='.$tid.']'.$data['subject'].'[/url] a été déplacé dans un autre forum.'."\n".
'Merci de votre compréhension, pour plus de détail n\'hésitez pas à contacter un membre du staff.'."\n\n".
'Cordialement';
// On récupère le shared_id
$result_shared = $db->query('SELECT last_shared_id FROM '.$db->prefix.'messages ORDER BY last_shared_id DESC LIMIT 1') or error('Unable to fetch last_shared_id', __FILE__, __LINE__, $db->error());
if (!$db->num_rows($result_shared))
$shared_id = '1';
else{
$shared_result = $db->result($result_shared);
$shared_id = $shared_result + '1';
}
// On execute les requêtes sql qui permettent d'ajouter le mp en bdd
$db->query('INSERT INTO '.$db->prefix.'messages (shared_id, last_shared_id, owner, subject, message, sender, receiver, sender_id, receiver_id, sender_ip, hide_smilies, posted, show_message, showed) VALUES(\''.$shared_id.'\', \''.$shared_id.'\', \''.$dest['id'].'\', \''.$db->escape($titre).'\', \''.$db->escape($message).'\', \''.$db->escape($pun_user['username']).'\', \''.$db->escape($dest['username']).'\', \''.$pun_user['id'].'\', \''.$db->escape($dest['id']).'\', \''.get_remote_address().'\', "0", \''.$now.'\', "1", "0")') or error('Unable to send the message.', __FILE__, __LINE__, $db->error());
$new_mp = $db->insert_id();
$db->query('UPDATE '.$db->prefix.'messages SET last_post_id='.$new_mp.', last_post='.$now.', last_poster=\''.$db->escape($pun_user['username']).'\' WHERE shared_id='.$shared_id.' AND show_message=1 AND owner='.$dest['id']) or error('Unable to update the message.', __FILE__, __LINE__, $db->error());
$db->query('UPDATE '.$db->prefix.'users SET num_pms=num_pms+1 WHERE id='.$dest['id']) or error('Unable to update user', __FILE__, __LINE__, $db->error());
}
}Testé, installé sur mon propre forum et approuvé 
Hors ligne
Un grand merci WinuX mes modérateurs sont ravis 
Hors ligne