From 14353d18ad4682ed6f1e3ab554ef85c42a2bafee Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Thu, 4 Nov 2004 21:02:30 +0000 Subject: - Slightly modified the API of node_title_list(): it will no longer call comment_num_all() for each node. Instead, it checks for the availability of the node_comment field, available through the node_comment_statistics table. If updated the Doxygen comments accordingly. People were using node_title_list() without realizing it would do numereous database queries. This change greatly reduces the number of database queries required to render the node statistics block as well as to render the forum block (coming up next). If your module is using node_title_list() and you want the number of comments to be shown as title attributes, chances are you have to update your SQL query to join node_comment_statistics. --- modules/node/node.module | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'modules/node/node.module') diff --git a/modules/node/node.module b/modules/node/node.module index 1f2b24f0d..d16b60127 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -75,7 +75,8 @@ function node_help_page() { * Gather a listing of links to nodes. * * @param $result - * A DB result object from a query to fetch node objects. + * A DB result object from a query to fetch node objects. If your query joins the node_comment_statistics table so that the comment_count field is available, a title attribute will be added to show the number of comments. + * field to be set. * @param $title * A heading for the resulting list. * @@ -84,8 +85,7 @@ function node_help_page() { */ function node_title_list($result, $title = NULL) { while ($node = db_fetch_object($result)) { - $number = module_invoke('comment', 'num_all', $node->nid); - $items[] = l($node->title, 'node/'. $node->nid, $number ? array('title' => format_plural($number, '1 comment', '%count comments')) : ''); + $items[] = l($node->title, 'node/'. $node->nid, $node->comment_count ? array('title' => format_plural($node->comment_count, '1 comment', '%count comments')) : ''); } return theme('node_list', $items, $title); -- cgit v1.2.3