Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Bonjour,
Sauriez vous comment modifier la fonction "S'abonner a une discussion" sans que celle ci envois un email ?
De ce fait les gens mettrait leur topic en "Favoris" et n'auraient qu'a cliquer sur "Afficher les discussions auxquelles vous êtes abonné" pour acceder facilement a leurs topics favoris
Sauriez vous m'aider pour enlever proprement la fonction qui envois un email a chaque reponse sur le topic si un membre s'est abonné a ce dernier?
merci
Hors ligne
En fait j'ai beau cherché je trouve rien qui correspond a l'envois d'email ?
J'ai regardé dans le fichier Misc.php (car c'est la qu'est inscrit le code pour l'abonnement a la discussion), puis dans include/email.php mais rien ne concerne l'envois email pour l'abonnement...
t'etre dans post.php ? hé oui c'est la apparemment
J'ai trouvé le bout de code, que voici :
// Should we send out notifications?
if ($pun_config['o_subscriptions'] == '1')
{
// Get the post time for the previous post in this topic
$result = $db->query('SELECT posted FROM '.$db->prefix.'posts WHERE topic_id='.$tid.' ORDER BY id DESC LIMIT 1, 1') or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
$previous_post_time = $db->result($result);
// Get any subscribed users that should be notified (banned users are excluded)
$result = $db->query('SELECT u.id, u.email, u.notify_with_post, u.language FROM '.$db->prefix.'users AS u INNER JOIN '.$db->prefix.'subscriptions AS s ON u.id=s.user_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id='.$cur_posting['id'].' AND fp.group_id=u.group_id) LEFT JOIN '.$db->prefix.'online AS o ON u.id=o.user_id LEFT JOIN '.$db->prefix.'bans AS b ON u.username=b.username WHERE b.username IS NULL AND COALESCE(o.logged, u.last_visit)>'.$previous_post_time.' AND (fp.read_forum IS NULL OR fp.read_forum=1) AND s.topic_id='.$tid.' AND u.id!='.intval($pun_user['id'])) or error('Unable to fetch subscription info', __FILE__, __LINE__, $db->error());
if ($db->num_rows($result))
{
require_once PUN_ROOT.'include/email.php';
$notification_emails = array();
// Loop through subscribed users and send e-mails
while ($cur_subscriber = $db->fetch_assoc($result))
{
// Is the subscription e-mail for $cur_subscriber['language'] cached or not?
if (!isset($notification_emails[$cur_subscriber['language']]))
{
if (file_exists(PUN_ROOT.'lang/'.$cur_subscriber['language'].'/mail_templates/new_reply.tpl'))
{
// Load the "new reply" template
$mail_tpl = trim(file_get_contents(PUN_ROOT.'lang/'.$cur_subscriber['language'].'/mail_templates/new_reply.tpl'));
// Load the "new reply full" template (with post included)
$mail_tpl_full = trim(file_get_contents(PUN_ROOT.'lang/'.$cur_subscriber['language'].'/mail_templates/new_reply_full.tpl'));
// The first row contains the subject (it also starts with "Subject:")
$first_crlf = strpos($mail_tpl, "\n");
$mail_subject = trim(substr($mail_tpl, 8, $first_crlf-8));
$mail_message = trim(substr($mail_tpl, $first_crlf));
$first_crlf = strpos($mail_tpl_full, "\n");
$mail_subject_full = trim(substr($mail_tpl_full, 8, $first_crlf-8));
$mail_message_full = trim(substr($mail_tpl_full, $first_crlf));
$mail_subject = str_replace('<topic_subject>', '\''.$cur_posting['subject'].'\'', $mail_subject);
$mail_message = str_replace('<topic_subject>', '\''.$cur_posting['subject'].'\'', $mail_message);
$mail_message = str_replace('<replier>', $username, $mail_message);
$mail_message = str_replace('<post_url>', $pun_config['o_base_url'].'/viewtopic.php?pid='.$new_pid.'#p'.$new_pid, $mail_message);
$mail_message = str_replace('<unsubscribe_url>', $pun_config['o_base_url'].'/misc.php?unsubscribe='.$tid, $mail_message);
$mail_message = str_replace('<board_mailer>', $pun_config['o_board_title'].' '.$lang_common['Mailer'], $mail_message);
$mail_subject_full = str_replace('<topic_subject>', '\''.$cur_posting['subject'].'\'', $mail_subject_full);
$mail_message_full = str_replace('<topic_subject>', '\''.$cur_posting['subject'].'\'', $mail_message_full);
$mail_message_full = str_replace('<replier>', $username, $mail_message_full);
$mail_message_full = str_replace('<message>', $message, $mail_message_full);
$mail_message_full = str_replace('<post_url>', $pun_config['o_base_url'].'/viewtopic.php?pid='.$new_pid.'#p'.$new_pid, $mail_message_full);
$mail_message_full = str_replace('<unsubscribe_url>', $pun_config['o_base_url'].'/misc.php?unsubscribe='.$tid, $mail_message_full);
$mail_message_full = str_replace('<board_mailer>', $pun_config['o_board_title'].' '.$lang_common['Mailer'], $mail_message_full);
$notification_emails[$cur_subscriber['language']][0] = $mail_subject;
$notification_emails[$cur_subscriber['language']][1] = $mail_message;
$notification_emails[$cur_subscriber['language']][2] = $mail_subject_full;
$notification_emails[$cur_subscriber['language']][3] = $mail_message_full;
$mail_subject = $mail_message = $mail_subject_full = $mail_message_full = null;
}
}
// We have to double check here because the templates could be missing
if (isset($notification_emails[$cur_subscriber['language']]))
{
if ($cur_subscriber['notify_with_post'] == '0')
pun_mail($cur_subscriber['email'], $notification_emails[$cur_subscriber['language']][0], $notification_emails[$cur_subscriber['language']][1]);
else
pun_mail($cur_subscriber['email'], $notification_emails[$cur_subscriber['language']][2], $notification_emails[$cur_subscriber['language']][3]);
}
}
}
}
}dois je simplement le supprimer?
Hors ligne
Oui, ou plutôt le commenter au cas où tu veuilles le ré-utiliser plus tard. Fais juste attention, j'ai l'impression que tu as pris une accolade fermante en trop
.
Par contre ça empêche TOUS tes membres de recevoir leurs mails d'inscription 
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
tu veux dire ceux qui se sont abonné ?
oui ben tant pis... je remarque que cette fonction est assez lourde finalement ? ou peut être juste une impression ?
Des topics de plusieurs page si les gens reçoivent un mail a chaque réponse... oulalala...
J'ai également une autre fonction que je trouve "catastrophique" mais pareil je ne sais pas si ca joue réellement bien que je pense que si ?
C'est celle qui permet dans le profil de choisir les options de paginations (Profil > Affichage) j'en ai vu certain (via la BDD) qui mettait 75 / 75
de quoi faire de gros appel a la BDD et la surcharger inutilement ?
Surtout que la plupart des messages sont des "Merci, super tuto" "merci j'adore" etc...
J'aimerais vos avis? sachant que je commence a sentir mon serveur légèrement surmené le soir (aux heures d'affluence)
Dernière modification par venuxweb (16-11-2009 14:39:38)
Hors ligne
On ne reçoit une alerte que pour le premier nouveau message dans la discussion.
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
ok autant pour moi;
et pour ce que tu dis
Par contre ça empêche TOUS tes membres de recevoir leurs mails d'inscription
inscription ? tu parles tjrs de l'abonnement a la discussion?
Hors ligne
Oui, je parlais des mails d'abonnement, mon clavier a fourché :red:
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