diff --git a/modules/comment/comment.module b/modules/comment/comment.module index 1fb88a60a8ff18f1563110db3b00ed2bf674d908..c6516519b229f048a94678228da4d8fd701b04d1 100644 --- a/modules/comment/comment.module +++ b/modules/comment/comment.module @@ -2064,16 +2064,21 @@ function comment_form_submit($form, &$form_state) { else { drupal_set_message(t('Your comment has been posted.')); } - $redirect = array('comment/' . $comment->cid, array(), 'comment-' . $comment->cid); + $query = array(); + // Find the current display page for this comment. + $page = comment_get_display_page($comment->cid, $node->type); + if ($page > 0) { + $query['page'] = $page; + } + // Redirect to the newly posted comment. + $redirect = array('node/' . $node->nid, $query, 'comment-' . $comment->cid); } else { watchdog('content', 'Comment: unauthorized comment submitted or comment submitted to a closed post %subject.', array('%subject' => $comment->subject), WATCHDOG_WARNING); drupal_set_message(t('Comment: unauthorized comment submitted or comment submitted to a closed post %subject.', array('%subject' => $comment->subject)), 'error'); - $page = comment_new_page_count($node->comment_count, 1, $node); - $redirect = array('node/' . $node->nid, $page); + // Redirect the user to the node they are commenting on. + $redirect = 'node/' . $node->nid; } - - // Redirect the user to the node they're commenting on. unset($form_state['rebuild']); $form_state['redirect'] = $redirect; } diff --git a/modules/comment/comment.test b/modules/comment/comment.test index 3ba6b6717e0007704403cb2ae310f0ca734e81cf..bd835680cd069b30f9c10c6402a9f34d49d377c0 100644 --- a/modules/comment/comment.test +++ b/modules/comment/comment.test @@ -46,7 +46,7 @@ class CommentHelperCase extends DrupalWebTestCase { $this->drupalPost(NULL, $edit, t('Save')); $match = array(); // Get comment ID - preg_match('/#comment-([^"]+)/', $this->getURL(), $match); + preg_match('/#comment-([0-9]+)/', $this->getURL(), $match); // Get comment. if ($contact !== TRUE) { // If true then attempting to find error message.