New comment notification system.

git-svn-id: http://svn.automattic.com/wordpress/trunk@555 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
saxmatt 2003-11-23 22:13:33 +00:00
parent 451de48541
commit 0a243e8bbf
3 changed files with 69 additions and 68 deletions

View File

@ -1453,13 +1453,7 @@ function wp_get_comment_status($comment_id) {
} }
} }
function wp_notify_postauthor($comment_id, $comment_type) {
/* wp_notify_postauthor
notifies the author of a post about a new comment
needs the id of the new comment
always returns true
*/
function wp_notify_postauthor($comment_id) {
global $wpdb, $tablecomments, $tableposts, $tableusers; global $wpdb, $tablecomments, $tableposts, $tableusers;
global $querystring_start, $querystring_equal, $querystring_separator; global $querystring_start, $querystring_equal, $querystring_separator;
global $blogfilename, $blogname, $siteurl; global $blogfilename, $blogname, $siteurl;
@ -1468,29 +1462,46 @@ function wp_notify_postauthor($comment_id) {
$post = $wpdb->get_row("SELECT * FROM $tableposts WHERE ID='$comment->comment_post_ID' LIMIT 1"); $post = $wpdb->get_row("SELECT * FROM $tableposts WHERE ID='$comment->comment_post_ID' LIMIT 1");
$user = $wpdb->get_row("SELECT * FROM $tableusers WHERE ID='$post->post_author' LIMIT 1"); $user = $wpdb->get_row("SELECT * FROM $tableusers WHERE ID='$post->post_author' LIMIT 1");
if ("" != $user->user_email) { if ('' == $user->user_email) return false; // If there's no email to send the comment to
$comment_author_domain = gethostbyaddr($comment->comment_author_IP); $comment_author_domain = gethostbyaddr($comment->comment_author_IP);
$notify_message = "New comment on your post #$comment->comment_post_ID \"".stripslashes($post->post_title)."\"\r\n\r\n"; $blogname = stripslashes($blogname);
$notify_message .= "Author : $comment->comment_author (IP: $comment->comment_author_IP , $comment_author_domain)\r\n";
$notify_message .= "E-mail : $comment->comment_author_email\r\n"; if ('comment' == $comment_type) {
$notify_message .= "URL : $comment->comment_author_url\r\n"; $notify_message = "New comment on your post #$comment->comment_post_ID \"".stripslashes($post->post_title)."\"\r\n\r\n";
$notify_message .= "Whois : http://ws.arin.net/cgi-bin/whois.pl?queryinput=$comment->comment_author_IP\r\n"; $notify_message .= "Author : $comment->comment_author (IP: $comment->comment_author_IP , $comment_author_domain)\r\n";
$notify_message .= "Comment:\r\n".stripslashes($comment->comment_content)."\r\n\r\n"; $notify_message .= "E-mail : $comment->comment_author_email\r\n";
$notify_message .= "You can see all comments on this post here: \r\n"; $notify_message .= "URI : $comment->comment_author_url\r\n";
$notify_message .= $siteurl.'/'.$blogfilename.'?p='.$comment_post_ID.'&c=1#comments'; $notify_message .= "Whois : http://ws.arin.net/cgi-bin/whois.pl?queryinput=$comment->comment_author_IP\r\n";
$notify_message .= "Comment:\r\n".stripslashes($comment->comment_content)."\r\n\r\n";
$subject = '[' . stripslashes($blogname) . '] Comment: "' .stripslashes($post->post_title).'"'; $notify_message .= "You can see all comments on this post here: \r\n";
if ('' != $comment->comment_author_email) { $subject = '[' . $blogname . '] Comment: "' .stripslashes($post->post_title).'"';
$from = "From: \"$comment->comment_author\" <$comment->comment_author_email>"; } elseif ('trackback' == $comment_type) {
} else { $notify_message = "New trackback on your post #$comment_post_ID \"".stripslashes($post->post_title)."\"\r\n\r\n";
$from = 'From: "' . stripslashes($comment->comment_author) . "\" <$user->user_email>"; $notify_message .= "Website: $comment->comment_author (IP: $comment->comment_author_IP , $comment_author_domain)\r\n";
$notify_message .= "URI : $comment->comment_author_url\r\n";
$notify_message .= "Excerpt: \n".stripslashes($comment->comment_content)."\r\n\r\n";
$notify_message .= "You can see all trackbacks on this post here: \r\n";
$subject = '[' . $blogname . '] Trackback: "' .stripslashes($post->post_title).'"';
} elseif ('pingback' == $comment_type) {
$notify_message = "New pingback on your post #$comment_post_ID \"".stripslashes($post->post_title)."\"\r\n\r\n";
$notify_message .= "Website: $comment->comment_author\r\n";
$notify_message .= "URI : $comment->comment_author_url\r\n";
$notify_message .= "Excerpt: \n[...] $original_context [...]\r\n\r\n";
$notify_message .= "You can see all pingbacks on this post here: \r\n";
$subject = '[' . $blogname . '] Pingback: "' .stripslashes($post->post_title).'"';
}
$notify_message .= get_permalink() . '#comments';
if ('' == $comment->comment_author_email || '' == $comment->comment_author) {
$from = "From: \"$blogname\" <wordpress@" . $HTTP_SERVER_VARS['SERVER_NAME'] . '>';
} else {
$from = 'From: "' . stripslashes($comment->comment_author) . "\" <$comment->comment_author_email>";
} }
$from .= "\nX-Mailer: WordPress $b2_version with PHP/" . phpversion();
@mail($user->user_email, $subject, $notify_message, $from); @mail($user->user_email, $subject, $notify_message, $from);
}
return true; return true;
} }
@ -1525,7 +1536,6 @@ function wp_notify_moderator($comment_id) {
$subject = '[' . stripslashes($blogname) . '] Please approve: "' .stripslashes($post->post_title).'"'; $subject = '[' . stripslashes($blogname) . '] Please approve: "' .stripslashes($post->post_title).'"';
$admin_email = get_settings("admin_email"); $admin_email = get_settings("admin_email");
$from = "From: $admin_email"; $from = "From: $admin_email";
$from .= "\nX-Mailer: WordPress $b2_version with PHP/" . phpversion();
@mail($admin_email, $subject, $notify_message, $from); @mail($admin_email, $subject, $notify_message, $from);

View File

@ -93,28 +93,22 @@ if ($ok) { // if there was no comment from this IP in the last 10 seconds
} else { // none } else { // none
$approved = 1; $approved = 1;
} }
$wpdb->query("INSERT INTO $tablecomments (comment_ID,comment_post_ID,comment_author,comment_author_email,comment_author_url,comment_author_IP,comment_date,comment_content,comment_karma,comment_approved) VALUES ('0', '$comment_post_ID', '$author', '$email', '$url', '$user_ip', '$now', '$comment', '0', '$approved')"); $wpdb->query("INSERT INTO $tablecomments
(comment_ID, comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_content, comment_approved)
VALUES
('0', '$comment_post_ID', '$author', '$email', '$url', '$user_ip', '$now', '$comment', '$approved')
");
/*
$comment_ID = $wpdb->get_var('SELECT last_insert_id()'); $comment_ID = $wpdb->get_var('SELECT last_insert_id()');
$fp = fopen("/tmp/wpdebug.txt", "w+");
fwrite($fp, "comment_moderation: $comment_moderation\n");
fwrite($fp, "moderation_notify : $moderation_notify\n");
if (($moderation_notify) && (!$approved)) { if (($moderation_notify) && (!$approved)) {
wp_notify_moderator($comment_ID); wp_notify_moderator($comment_ID);
fwrite($fp, "notify moderator -> $comment_ID\n");
} }
if (($comment_notify) && ($approved)) { if (($comment_notify) && ($approved)) {
wp_notify_postauthor($comment_ID); wp_notify_postauthor($comment_ID, 'comment');
fwrite($fp, "notify postauthor -> $comment_ID\n");
} }
fclose($fp);
*/
if ($email == '') if ($email == '')
$email = ' '; // this to make sure a cookie is set for 'no email' $email = ' '; // this to make sure a cookie is set for 'no email'

View File

@ -1,6 +1,4 @@
<?php if (!empty($tb)) { <?php
} else {
if (!empty($HTTP_GET_VARS['tb_id'])) { if (!empty($HTTP_GET_VARS['tb_id'])) {
// trackback is done by a GET // trackback is done by a GET
@ -24,19 +22,18 @@ if ((strlen(''.$tb_id)) && (empty($HTTP_GET_VARS['__mode'])) && (strlen(''.$tb_u
@header('Content-Type: text/xml'); @header('Content-Type: text/xml');
require_once('wp-config.php'); require_once('wp-config.php');
require_once($abspath.$b2inc.'/b2template.functions.php'); require_once($abspath.$b2inc.'/b2template.functions.php');
require_once($abspath.$b2inc.'/b2vars.php'); require_once($abspath.$b2inc.'/b2vars.php');
require_once($abspath.$b2inc.'/b2functions.php'); require_once($abspath.$b2inc.'/b2functions.php');
if (!$use_trackback) { if (!$use_trackback)
trackback_response(1, 'Sorry, this weblog does not allow you to trackback its posts.'); trackback_response(1, 'Sorry, this weblog does not allow you to trackback its posts.');
}
$pingstatus = $wpdb->get_var("SELECT ping_status FROM $tableposts WHERE ID = $tb_id"); $pingstatus = $wpdb->get_var("SELECT ping_status FROM $tableposts WHERE ID = $tb_id");
if ('closed' == $pingstatus) if ('closed' == $pingstatus)
die('Sorry, trackbacks are closed for this item.'); trackback_response(1, 'Sorry, trackbacks are closed for this item.');
$tb_url = addslashes($tb_url); $tb_url = addslashes($tb_url);
$title = strip_tags($title); $title = strip_tags($title);
@ -47,7 +44,7 @@ if ((strlen(''.$tb_id)) && (empty($HTTP_GET_VARS['__mode'])) && (strlen(''.$tb_u
$blog_name = (strlen($blog_name) > 255) ? substr($blog_name, 0, 252).'...' : $blog_name; $blog_name = (strlen($blog_name) > 255) ? substr($blog_name, 0, 252).'...' : $blog_name;
$comment = '<trackback />'; $comment = '<trackback />';
$comment .= "<strong>$title</strong><br />$excerpt"; $comment .= "<strong>$title</strong>\n$excerpt";
$author = addslashes($blog_name); $author = addslashes($blog_name);
$email = ''; $email = '';
@ -57,7 +54,7 @@ if ((strlen(''.$tb_id)) && (empty($HTTP_GET_VARS['__mode'])) && (strlen(''.$tb_u
$user_ip = $HTTP_SERVER_VARS['REMOTE_ADDR']; $user_ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$user_domain = gethostbyaddr($user_ip); $user_domain = gethostbyaddr($user_ip);
$time_difference = get_settings('time_difference'); $time_difference = get_settings('time_difference');
$now = date('Y-m-d H:i:s',(time() + ($time_difference * 3600))); $now = current_time('mysql');
$comment = convert_chars($comment); $comment = convert_chars($comment);
$comment = format_to_post($comment); $comment = format_to_post($comment);
@ -68,30 +65,30 @@ if ((strlen(''.$tb_id)) && (empty($HTTP_GET_VARS['__mode'])) && (strlen(''.$tb_u
$author = addslashes($author); $author = addslashes($author);
$result = $wpdb->query("INSERT INTO $tablecomments VALUES ('0', '$comment_post_ID', '$author', '$email', '$tb_url', '$user_ip', '$now', '$comment', '0')"); $comment_moderation = get_settings('comment_moderation');
$moderation_notify = get_settings('moderation_notify');
if ('manual' == $comment_moderation) {
$approved = 0;
} else if ('auto' == $comment_moderation) {
$approved = 0;
} else { // none
$approved = 1;
}
$result = $wpdb->query("INSERT INTO $tablecomments
(comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_content, comment_approved)
VALUES
('$comment_post_ID', '$author', '$email', '$tb_url', '$user_ip', '$now', '$comment', '$approved')
");
if (!$result) { if (!$result) {
die ("There is an error with the database, it can't store your comment...<br />Contact the <a href=\"mailto:$admin_email\">webmaster</a>"); die ("There is an error with the database, it can't store your comment...<br />Please contact the <a href='mailto:$admin_email'>webmaster</a>.");
} else { } else {
$postdata = get_postdata($comment_post_ID); $comment_ID = $wpdb->get_var('SELECT last_insert_id()');
$authordata = get_userdata($postdata["Author_ID"]); if ($comments_notify)
if ($comments_notify && '' != $authordata->user_email) { wp_notify_postauthor($comment_ID, 'trackback');
$notify_message = "New trackback on your post #$comment_post_ID \"".stripslashes($postdata['Title'])."\"\r\n\r\n";
$notify_message .= "Website: $comment_author (IP: $user_ip , $user_domain)\r\n";
$notify_message .= "URI : $comment_author_url\r\n";
$notify_message .= "Excerpt: \n".stripslashes($original_comment)."\r\n\r\n";
$notify_message .= "You can see all trackbacks on this post here: \r\n";
$notify_message .= "$siteurl/$blogfilename?p=$comment_post_ID&c=1\r\n\r\n";
$subject = '[' . stripslashes($blogname) . '] Trackback: "' .stripslashes($postdata['Title']).'"';
$from = "From: wordpress@".$HTTP_SERVER_VARS['SERVER_NAME'];
$from .= "\r\nX-Mailer: WordPress $b2_version with PHP/" . phpversion();
@mail($authordata->user_email, $subject, $notify_message, $from);
}
trackback_response(0); trackback_response(0);
} }
} }
}
?> ?>