summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDries Buytaert2008-06-18 16:06:42 (GMT)
committerDries Buytaert2008-06-18 16:06:42 (GMT)
commit61cc35f2b0820733ff40a9775da45fa93a078584 (patch)
treee957ab408ab630f278992c6d5113af49e4b9d7ef
parent6e2358b23208ef7e2119d95b0cea1537d9a863c8 (diff)
- Patch #255918 by R.Muilwijk: performance improvement: comment_link querying for already retrieved data.
-rw-r--r--modules/comment/comment.module25
-rw-r--r--modules/comment/comment.test6
2 files changed, 8 insertions, 23 deletions
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index ce84a6e..7e261b5 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -418,10 +418,9 @@ function comment_link($type, $node = NULL, $teaser = FALSE) {
if ($teaser) {
// Main page: display the number of comments that have been posted.
if (user_access('access comments')) {
- $all = comment_num_all($node->nid);
- if ($all) {
+ if ($node->comment_count) {
$links['comment_comments'] = array(
- 'title' => format_plural($all, '1 comment', '@count comments'),
+ 'title' => format_plural($node->comment_count, '1 comment', '@count comments'),
'href' => "node/$node->nid",
'attributes' => array('title' => t('Jump to the first comment of this posting.')),
'fragment' => 'comments'
@@ -432,7 +431,7 @@ function comment_link($type, $node = NULL, $teaser = FALSE) {
$links['comment_new_comments'] = array(
'title' => format_plural($new, '1 new comment', '@count new comments'),
'href' => "node/$node->nid",
- 'query' => comment_new_page_count($all, $new, $node),
+ 'query' => comment_new_page_count($node->comment_count, $new, $node),
'attributes' => array('title' => t('Jump to the first new comment of this posting.')),
'fragment' => 'new'
);
@@ -1086,24 +1085,6 @@ function comment_load($cid) {
}
/**
- * Get comment count for a node.
- *
- * @param $nid
- * The node id.
- * @return
- * The comment count.
- */
-function comment_num_all($nid) {
- static $cache;
-
- if (!isset($cache[$nid])) {
- $cache[$nid] = db_result(db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = %d', $nid));
- }
-
- return $cache[$nid];
-}
-
-/**
* Get replies count for a comment.
*
* @param $pid
diff --git a/modules/comment/comment.test b/modules/comment/comment.test
index c1630d6..8b17b3b 100644
--- a/modules/comment/comment.test
+++ b/modules/comment/comment.test
@@ -27,7 +27,7 @@ class CommentTestCase extends DrupalWebTestCase {
$this->web_user = $this->drupalCreateUser(array('access comments', 'post comments', 'create article content'));
$this->drupalLogin($this->web_user);
- $this->node = $this->drupalCreateNode(array('type' => 'article'));
+ $this->node = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1));
$this->assertTrue($this->node, t('Article node created.'));
$this->drupalLogout();
}
@@ -68,6 +68,10 @@ class CommentTestCase extends DrupalWebTestCase {
$this->drupalGet('comment/edit/' . $reply->id);
$reply = $this->postComment(NULL, $this->randomName(), $this->randomName());
$this->assertTrue($this->commentExists($reply, TRUE), t('Modified reply found.'));
+
+ // Correct link count
+ $this->drupalGet('node');
+ $this->assertRaw('2 comments', t('Link to the 2 comments exist.'));
// Pager
$this->setCommentsPerPage(2);