function send_emails($id_comment) { // disposant de l'email d'un commentaire, on détermine l'article associé, le titre, l’auteur du comm et l’email de l’auteur du com. $article = get_entry($GLOBALS['db_handle'], 'commentaires', 'bt_article_id', $id_comment, 'return'); $article_title = get_entry($GLOBALS['db_handle'], 'articles', 'bt_title', $article, 'return'); $comm_author = get_entry($GLOBALS['db_handle'], 'commentaires', 'bt_author', $id_comment, 'return'); $comm_author_email = get_entry($GLOBALS['db_handle'], 'commentaires', 'bt_email', $id_comment, 'return'); // puis la liste de tous les commentaires de cet article $liste_commentaires = array(); try { $query = "SELECT bt_email,bt_subscribe,bt_id FROM commentaires WHERE bt_statut=1 AND bt_article_id=? ORDER BY bt_id"; $req = $GLOBALS['db_handle']->prepare($query); $req->execute(array($article)); $liste_commentaires = $req->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } // Récupérre la liste (sans doublons) des emails des commentateurs, ainsi que leurs souscription à la notification d'email. // si plusieurs comm avec la même email, alors seul le dernier est pris en compte. // si l’auteur même du commentaire est souscrit, il ne recoit pas l’email de son propre commentaire. $emails = array(); foreach ($liste_commentaires as $i => $comment) { if (!empty($comment['bt_email']) and $comm_author_email != $comment['bt_email']) { $emails[$comment['bt_email']] = $comment['bt_subscribe'] . '-' . get_id($comment['bt_id']); } } // ne conserve que la liste des mails dont la souscription est demandée (= 1) $to_send_mail = array(); foreach ($emails as $mail => $is_subscriben) { if ($is_subscriben[0] == '1') { // $is_subscriben is seen as a array of chars here, first char is 0 or 1 for subscription. $to_send_mail[$mail] = substr($is_subscriben, -14); } } $subject = 'New comment on "' . $article_title . '" - ' . $GLOBALS['nom_du_site']; $headers = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset="UTF-8"' . "\r\n"; $headers .= 'From: no.reply_' . $GLOBALS['email'] . "\r\n" . 'X-Mailer: BlogoText - PHP/' . phpversion(); // for debug //header('Content-type: text/html; charset=UTF-8'); //die(($to. $subject. $message. $headers)); //echo '<pre>';print_r($emails); //echo '<pre>';print_r($to_send_mail); //die(); // envoi les emails. foreach ($to_send_mail as $mail => $is_subscriben) { $comment = substr($is_subscriben, -14); $unsublink = get_blogpath($article, '') . '&unsub=1&comment=' . $comment . '&mail=' . sha1($mail); $message = '<html>'; $message .= '<head><title>' . $subject . '</title></head>'; $message .= '<body><p>A new comment by <b>' . $comm_author . '</b> has been posted on <b>' . $article_title . '</b> form ' . $GLOBALS['nom_du_site'] . '.<br/>'; $message .= 'You can see it by following <a href="' . get_blogpath($article, '') . '#' . article_anchor($id_comment) . '">this link</a>.</p>'; $message .= '<p>To unsubscribe from the comments on that post, you can follow this link: <a href="' . $unsublink . '">' . $unsublink . '</a>.</p>'; $message .= '<p>To unsubscribe from the comments on all the posts, follow this link: <a href="' . $unsublink . '&all=1">' . $unsublink . '&all=1</a>.</p>'; $message .= '<p>Also, do not reply to this email, since it is an automatic generated email.</p><p>Regards.</p></body>'; $message .= '</html>'; mail($mail, $subject, $message, $headers); } return TRUE; }
function init_list_comments($comment) { $comment['auteur_lien'] = !empty($comment['bt_webpage']) ? '<a href="' . $comment['bt_webpage'] . '" class="webpage">' . $comment['bt_author'] . '</a>' : $comment['bt_author']; $comment['anchor'] = article_anchor($comment['bt_id']); $comment['bt_link'] = get_blogpath($comment['bt_article_id'], '') . '#' . $comment['anchor']; $comment = array_merge($comment, decode_id($comment['bt_id'])); return $comment; }