/** * Implementation of hook_block(). * * Generates a block with the most recent comments. */ function comment_block($op = 'list', $delta = 0) { if ($op == 'list') { $blocks[0]['info'] = t('Recent comments'); return $blocks; } else if ($op == 'view' && user_access('access comments')) { $result = db_query_range(db_rewrite_sql('SELECT c.nid, c.* FROM {comments} c WHERE c.status = 0 ORDER BY c.timestamp DESC', 'c'), 0, 10); $items = array(); $comment_default_per_page = variable_get('comment_default_per_page', '50'); while ($comment = db_fetch_object($result)) { $how_many_comments = db_fetch_object(db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = %d', $comment->nid)); if ($how_many_comments->comment_count > $comment_default_per_page) { $from = ((int) (($how_many_comments->comment_count + 1) / $comment_default_per_page)) * $comment_default_per_page; $page = '&from='. $from . '&comments_per_page='. $comment_default_per_page; } else { $page = ''; } $items[] = l($comment->subject, 'node/'. $comment->nid . $page, NULL, NULL, 'comment-'. $comment->cid) .'
'. t('%time ago', array('%time' => format_interval(time() - $comment->timestamp))); } $block['subject'] = t('Recent comments'); $block['content'] = theme('item_list', $items); return $block; } }