diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index 85064340a3ca958f3072081d34628394cbc12771..8ea8e91cf876b1d57a946c3fe30a0d0b5a8c67bc 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -710,12 +710,14 @@ function comment_node_delete($node) {
*/
function comment_node_update_index($node) {
$text = '';
- $comments = db_query('SELECT subject, comment, format FROM {comment} WHERE nid = :nid AND status = :status', array(
- ':nid' => $node->nid,
- ':status' => COMMENT_PUBLISHED
- ));
- foreach ($comments as $comment) {
- $text .= '
' . check_plain($comment->subject) . '
' . check_markup($comment->comment, $comment->format, '', FALSE);
+ if ($node->comment != COMMENT_NODE_HIDDEN) {
+ $comments = db_query('SELECT subject, comment, format FROM {comment} WHERE nid = :nid AND status = :status', array(
+ ':nid' => $node->nid,
+ ':status' => COMMENT_PUBLISHED
+ ));
+ foreach ($comments as $comment) {
+ $text .= '' . check_plain($comment->subject) . '
' . check_markup($comment->comment, $comment->format, '', FALSE);
+ }
}
return $text;
}
@@ -732,8 +734,11 @@ function comment_update_index() {
* Implementation of hook_node_search_result().
*/
function comment_node_search_result($node) {
- $comments = db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = :nid', array('nid' => $node->nid))->fetchField();
- return format_plural($comments, '1 comment', '@count comments');
+ if ($node->comment != COMMENT_NODE_HIDDEN) {
+ $comments = db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = :nid', array('nid' => $node->nid))->fetchField();
+ return format_plural($comments, '1 comment', '@count comments');
+ }
+ return '';
}
/**
diff --git a/modules/search/search.test b/modules/search/search.test
index b7f5e9c2aab02de9e8a514d0920497c2dbcfa135..fc85653b958258465ca8c562ae2566700820afcb 100644
--- a/modules/search/search.test
+++ b/modules/search/search.test
@@ -503,5 +503,18 @@ class SearchCommentTestCase extends DrupalWebTestCase {
$this->assertText($comment_body, t('Comment body text found in search results.'));
$this->assertNoRaw(t('n/a'), t('HTML in comment body is not hidden.'));
$this->assertNoRaw(check_plain($edit_comment['comment']), t('HTML in comment body is not escaped.'));
+
+ // Hide comments.
+ $this->drupalLogin($this->admin_user);
+ $node->comment = 0;
+ node_save($node);
+
+ // Invoke search index update.
+ $this->drupalLogout();
+ $this->drupalGet($GLOBALS['base_url'] . '/cron.php', array('external' => TRUE, 'query' => 'cron_key=' . variable_get('cron_key', 'drupal')));
+
+ // Search for $title.
+ $this->drupalPost('', $edit, t('Search'));
+ $this->assertNoText($comment_body, t('Comment body text not found in search results.'));
}
}