? .entity.patch.swp
? .path_default.patch.swp
? 1
? 106559-alias-whitelist-automatic-alternative.patch
? 106559-alias-whitelist-automatic_1.patch
? 370454-simplify-page-caching.patch
? 439148-5.patch
? 470398
? 473652-optimize-file-get-mimetype.patch
? 473652-optimize-file-get-mimetype.patch.1
? ab.txt
? admin.patch
? admin.png
? admin_12.patch
? admin_role_fix.patch
? apc_head.png
? apc_patch.png
? bar.patch
? block.patch
? block_26.patch
? body-as-field-372743-146.patch
? body-as-field-372743-150.patch
? body-as-field-372743-158.patch
? cache_get_multiple-333171-39.patch
? comment_pages.patch
? d7-garland-comment-links.patch
? default.patch
? drupal-split-total2.patch
? drupal.path_.inc_.patch
? empty.patch
? entity.patch
? entityloading_frh_TESTS_DISABLED_3.patch
? entityloading_frh_TESTS_DISABLED_3_1.patch
? field.png
? file_get_mimetype.png
? file_get_mimetype_loop.patch
? foo.patch
? mapping.patch
? menu.png
? multiple_load_conversion_4.patch
? node_page_default_43.patch
? path.patch
? path_28.patch
? path_default.patch
? path_whitelist_1.patch
? sanitize.patch
? sanitize_0.patch
? sanitize_3.patch
? smileys.png
? sun_review.patch
? switch_1.patch
? taxonomy.patch
? taxonomy_fieldable-413192-34.patch
? taxonomy_fieldable.patch
? term_form.png
? term_page.png
? term_path.patch
? term_path_2.patch
? tracker_17.patch
? updates.txt
? user_node_load.patch
? user_node_load_0.patch
? vertical-tabs.css_.patch
? vertical-tabs.css__0.patch
? vocabulary.patch
? vocabulary.png
? includes/file.mimetypes.inc
? modules/aggregator/aggregator.block.inc
? modules/aggregator/aggregator.cron.inc
? modules/aggregator/aggregator.registry.inc
? modules/block/block.block.inc
? modules/block/block.form.inc
? modules/block/block.registry.inc
? modules/block/block.user.inc
? modules/blog/blog.block.inc
? modules/blog/blog.node.inc
? modules/blog/blog.registry.inc
? modules/blogapi/.blogapi.test.swp
? modules/blogapi/blogapi.admin.inc
? modules/blogapi/blogapi.registry.inc
? modules/blogapi/blogapi.xmlrpc.inc
? modules/book/book.block.inc
? modules/book/book.form.inc
? modules/book/book.node.inc
? modules/book/book.registry.inc
? modules/color/color.form.inc
? modules/color/color.registry.inc
? modules/comment/.comment.module.swp
? modules/comment/comment.actions.inc
? modules/comment/comment.block.inc
? modules/comment/comment.form.inc
? modules/comment/comment.node.inc
? modules/comment/comment.registry.inc
? modules/comment/comment.search.inc
? modules/comment/comment.user.inc
? modules/contact/contact.mail.inc
? modules/contact/contact.registry.inc
? modules/contact/contact.user.inc
? modules/dblog/dblog.cron.inc
? modules/dblog/dblog.registry.inc
? modules/dblog/dblog.user.inc
? modules/dblog/dblog.watchdog.inc
? modules/field/field.registry.inc
? modules/field/modules/field_sql_storage/field_sql_storage.field_storage.inc
? modules/field/modules/list/list.field.inc
? modules/field/modules/list/list.registry.inc
? modules/field/modules/number/number.field.inc
? modules/field/modules/number/number.registry.inc
? modules/field/modules/options/options.field.inc
? modules/field/modules/options/options.registry.inc
? modules/field/modules/text/text.field.inc
? modules/field/modules/text/text.registry.inc
? modules/filter/filter.cron.inc
? modules/filter/filter.registry.inc
? modules/forum/forum.block.inc
? modules/forum/forum.node.inc
? modules/forum/forum.registry.inc
? modules/forum/forum.taxonomy.inc
? modules/help/help.registry.inc
? modules/locale/locale.block.inc
? modules/locale/locale.form.inc
? modules/locale/locale.registry.inc
? modules/locale/locale.user.inc
? modules/menu/menu.block.inc
? modules/menu/menu.form.inc
? modules/menu/menu.node.inc
? modules/menu/menu.registry.inc
? modules/node/node.actions.inc
? modules/node/node.block.inc
? modules/node/node.cron.inc
? modules/node/node.form.inc
? modules/node/node.registry.inc
? modules/node/node.search.inc
? modules/node/node.user.inc
? modules/openid/openid.form.inc
? modules/openid/openid.registry.inc
? modules/openid/openid.user.inc
? modules/path/path.node.inc
? modules/path/path.registry.inc
? modules/poll/poll.block.inc
? modules/poll/poll.cron.inc
? modules/poll/poll.form.inc
? modules/poll/poll.node.inc
? modules/poll/poll.registry.inc
? modules/poll/poll.user.inc
? modules/profile/profile.block.inc
? modules/profile/profile.registry.inc
? modules/profile/profile.user.inc
? modules/search/search.block.inc
? modules/search/search.comment.inc
? modules/search/search.cron.inc
? modules/search/search.form.inc
? modules/search/search.node.inc
? modules/search/search.registry.inc
? modules/statistics/.statistics.admin.inc.swp
? modules/statistics/statistics.block.inc
? modules/statistics/statistics.cron.inc
? modules/statistics/statistics.node.inc
? modules/statistics/statistics.registry.inc
? modules/statistics/statistics.search.inc
? modules/statistics/statistics.user.inc
? modules/syslog/syslog.form.inc
? modules/syslog/syslog.registry.inc
? modules/syslog/syslog.watchdog.inc
? modules/system/system.actions.inc
? modules/system/system.block.inc
? modules/system/system.cron.inc
? modules/system/system.file.inc
? modules/system/system.form.inc
? modules/system/system.mail.inc
? modules/system/system.registry.inc
? modules/system/system.user.inc
? modules/taxonomy/taxonomy.node.inc
? modules/taxonomy/taxonomy.registry.inc
? modules/tracker/.tracker.pages.inc.swp
? modules/tracker/tracker.install
? modules/tracker/tracker.registry.inc
? modules/translation/translation.api.php
? modules/translation/translation.form.inc
? modules/translation/translation.node.inc
? modules/translation/translation.registry.inc
? modules/trigger/trigger.actions.inc
? modules/trigger/trigger.comment.inc
? modules/trigger/trigger.cron.inc
? modules/trigger/trigger.node.inc
? modules/trigger/trigger.registry.inc
? modules/trigger/trigger.taxonomy.inc
? modules/trigger/trigger.user.inc
? modules/update/update.cron.inc
? modules/update/update.form.inc
? modules/update/update.mail.inc
? modules/update/update.registry.inc
? modules/upload/upload.file.inc
? modules/upload/upload.form.inc
? modules/upload/upload.node.inc
? modules/upload/upload.pages.inc
? modules/upload/upload.registry.inc
? modules/user/user.actions.inc
? modules/user/user.block.inc
? modules/user/user.file.inc
? modules/user/user.form.inc
? modules/user/user.mail.inc
? modules/user/user.registry.inc
? modules/user/user.search.inc
? modules/user/user.user.inc
? sites/all/modules/contrib
? sites/default/files
? sites/default/settings.php
Index: modules/comment/comment.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.admin.inc,v
retrieving revision 1.22
diff -u -p -r1.22 comment.admin.inc
--- modules/comment/comment.admin.inc	25 May 2009 10:43:52 -0000	1.22
+++ modules/comment/comment.admin.inc	6 Jun 2009 11:05:45 -0000
@@ -71,6 +71,7 @@ function comment_admin_overview($type = 
   $query->join('node', 'n', 'n.nid = c.nid');
   $query->addField('u', 'name', 'registered_name');
   $query->addField('n', 'title', 'node_title');
+  $query->addField('n', 'type', 'node_type');
   $query
     ->fields('c', array('subject', 'nid', 'cid', 'comment', 'timestamp', 'status', 'name', 'homepage'))
     ->fields('u', array('uid'))
@@ -86,8 +87,10 @@ function comment_admin_overview($type = 
   $destination = drupal_get_destination();
 
   foreach ($result as $comment) {
+    $node = (object) array('type' => $comment->node_type);
+    $page = comment_get_display_page($comment->cid, $node);
     $options[$comment->cid] = array(
-      'subject' => l($comment->subject, 'node/' . $comment->nid, array('attributes' => array('title' => truncate_utf8($comment->comment, 128)), 'fragment' => 'comment-' . $comment->cid)),
+      'subject' => l($comment->subject, 'node/' . $comment->nid, array('attributes' => array('title' => truncate_utf8($comment->comment, 128)), 'query' => array('page' => $page), 'fragment' => 'comment-' . $comment->cid)),
       'author' => theme('username', $comment),
       'posted_in' => l($comment->node_title, 'node/' . $comment->nid),
       'time' => format_date($comment->timestamp, 'small'),
Index: modules/comment/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.module,v
retrieving revision 1.719
diff -u -p -r1.719 comment.module
--- modules/comment/comment.module	3 Jun 2009 06:52:29 -0000	1.719
+++ modules/comment/comment.module	6 Jun 2009 11:05:47 -0000
@@ -1348,6 +1348,52 @@ function comment_num_new($nid, $timestam
 }
 
 /**
+ * Get the display ordinal for a comment, starting from 0.
+ *
+ * @param $cid
+ *   The comment ID.
+ * @return
+ *  The display ordinal for the comment.
+ */
+function comment_get_display_ordinal($cid, $node) {
+  // Count how many comments (c) are before $cid (d) in display order. This is
+  // the 0-based display ordinal.
+  $query = db_select('comment', 'c');
+  $query->innerJoin('comment', 'd', 'd.nid = c.nid');
+  $query->addExpression('COUNT(*)', 'count');
+  $query->condition('d.cid', $cid);
+  if (!user_access('administer comments')) {
+    $query->condition('c.status', COMMENT_PUBLISHED);
+  }
+  $mode = _comment_get_display_setting('mode', $node);
+
+  if ($mode == COMMENT_MODE_FLAT_EXPANDED || $mode == COMMENT_MODE_FLAT_COLLAPSED) {
+    $query->condition('c.cid', 'd.cid', '<');
+  }
+  else {
+    $query->addExpression('SUBSTRING(c.thread, 1, (LENGTH(c.thread) -1)) < SUBSTRING(d.thread, 1, (LENGTH(d.thread) -1))');
+  }
+
+  return $query->execute()->fetchField();
+}
+
+/**
+ * Return the page number for a comment.
+ *
+ * @param $cid
+ *   The comment ID.
+ * @param $node
+ *   The node the comment is attached to.
+ * @return
+ *  The page number.
+ */
+function comment_get_display_page($cid, $node) {
+  $ordinal = comment_get_display_ordinal($cid, $node);
+  $comments_per_page = _comment_get_display_setting('comments_per_page', $node);
+  return floor($ordinal/$comments_per_page);
+}
+
+/**
  * Validate comment data.
  *
  * @param $edit
