Archives FluxBB.fr

Les archives de FluxBB.fr

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

#1 16-11-2009 11:29:50

venuxweb
Membre

"S'abonner a cette discussion" mais sans l'email...

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

#2 16-11-2009 14:11:47

venuxweb
Membre

Re : "S'abonner a cette discussion" mais sans l'email...

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

#3 16-11-2009 14:17:59

fanf73
Wik-wiki

Re : "S'abonner a cette discussion" mais sans l'email...

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

Par contre ça empêche TOUS tes membres de recevoir leurs mails d'inscription neutral


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 16-11-2009 14:33:10

venuxweb
Membre

Re : "S'abonner a cette discussion" mais sans l'email...

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

#5 16-11-2009 15:23:59

fanf73
Wik-wiki

Re : "S'abonner a cette discussion" mais sans l'email...

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

#6 16-11-2009 17:49:41

venuxweb
Membre

Re : "S'abonner a cette discussion" mais sans l'email...

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

#7 16-11-2009 18:06:38

fanf73
Wik-wiki

Re : "S'abonner a cette discussion" mais sans l'email...

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

Pied de page des forums