Avec SPIP 1.8.2, les auteurs d’articles peuvent recevoir un mail lorsqu’un visiteur laisse un message sur le forum lié.
Grâce au code suivant, il devient aussi possible aux visiteurs de recevoir un mail quand une réponse est faite à leur message.
Dans le fichier inc-messforum.php3 vers la ligne 78, il faut ajouter le code suivant (en gras) :
$result = spip_query("SELECT auteurs.email, auteurs.lang FROM spip_auteurs AS auteurs,
spip_auteurs_articles AS lien
WHERE lien.id_article='$id_article'
AND auteurs.id_auteur=lien.id_auteur");
while (list($email, $salangue) = spip_fetch_array($result)) {
$email = trim($email);
if (strlen($email) < 3) continue;
$GLOBALS['spip_lang'] = ($salangue ? $salangue : $old_lang);
envoyer_mail($email, $sujet, $corps) ;
// On stocke les adresses mails des auteurs pour ne pas leur envoyer le mail d'alerte en double
$emails[] = $email;
}
$GLOBALS['spip_lang'] = $old_lang;
// Code d'envoi de mail aux visiteurs ayant eu une réponse
// par Vincent GUIGUI 2006-03-10
// trouve tous les messages du même thread (sauf celui en cours)
$query = "SELECT forums_parent.email_auteur, forums_parent.id_forum
FROM spip_forum AS forums, spip_forum as forums_parent
WHERE forums_parent.id_thread = forums.id_thread
AND forums.id_forum = $id_forum AND forums_parent.id_forum $id_forum";
$result_parent = spip_query($query);
while (list($email, $id_forum_parent) = spip_fetch_array($result_parent))
{
$email = trim($email);
// Si le mail ne lui a pas déjà été envoyé
if (!in_array($email, $emails))
{
if (strlen($email) < 3) continue;
envoyer_mail($email, $sujet, $corps);
$emails[] = $email;
// On stocke les adresses mails des visiteurs déjà alertés pour ne pas leur envoyer le mail d'alerte en double
}
}
}