Pager at top and bottom of comments
Originally posted as http://drupal.org/node/79352#comment-223909
This snippet places a pager at the top of the comments on a node, in addition to the default pager at the bottom. It is especially useful in forums. For an example theme called 'mytemplate,' add the following to template.php:
<?php
/**
* Add a pager at the top of a list of comments.
*/
function mytemplate_comment_wrapper($content) {
$comments_per_page = _comment_get_display_setting('comments_per_page');
$content = theme('pager', NULL, $comments_per_page, 0) . $content;
return theme_comment_wrapper($content);
}
?>Details
The function comment_render() in comment.module calls theme('comment_wrapper', $output). This theming call will match any hook *_comment_wrapper(), or give up and fall back to theme_comment_wrapper() (which is also in comment.module). This is a great place to jump in and add an extra pager, because the default function only wraps the comments in a <div>.
Line-by-line, the above snippet does the following:
- Retrieve the number of comments per page, which is needed for the pager. This line is copied directly from near the top of
comment_render(). - Prepend a pager to the content (which has already been given a pager at the end). This line is also found in comment.module and allows other theming applied to the pager to function properly.
- Use the default theming function from comment.module to wrap the whole set of pager + comments + pager in a
<div>.

Sorry but I have some
Sorry but I have some difficulty to get this working. I have added the code sniplet in the template.php. Now do I have to call this from my node-forum.tpl.php too?
Got it. For other novices,
Got it. For other novices, put following in your tpl.php file of chocie to get this working:
<?php mytemplate_comment_wrapper(NULL, $node->type); ?>