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.')); } }