diff --git a/database/updates.inc b/database/updates.inc index f3b3eb863ebe6878169b1d8ff308e9ace24068b1..5d65503cd615b57458b826ea6c0c04ae7be7f449 100644 --- a/database/updates.inc +++ b/database/updates.inc @@ -1689,15 +1689,7 @@ function system_update_173() { } function system_update_174() { - // update comments system variables on upgrade. - $mode = variable_get('comment_default_mode', 4); - if ($mode > 0) { - variable_set('comment_default_mode', $mode - 1); - } - $order = variable_get('comment_default_order', 1); - if ($order > 0) { - variable_set('comment_default_order', $order - 1); - } + // This update (update comments system variables on upgrade) has been removed. return array(); } diff --git a/modules/comment.module b/modules/comment.module index afaf5492f968c3c4683e5d0416683de142733e13..83fae38b7b28e1c97c712512b1e5c67f999c50cd 100644 --- a/modules/comment.module +++ b/modules/comment.module @@ -19,16 +19,16 @@ /** * Constants to define the viewing modes for comment listings */ -define('COMMENT_MODE_FLAT_COLLAPSED', 0); -define('COMMENT_MODE_FLAT_EXPANDED', 1); -define('COMMENT_MODE_THREADED_COLLAPSED', 2); -define('COMMENT_MODE_THREADED_EXPANDED', 3); +define('COMMENT_MODE_FLAT_COLLAPSED', 1); +define('COMMENT_MODE_FLAT_EXPANDED', 2); +define('COMMENT_MODE_THREADED_COLLAPSED', 3); +define('COMMENT_MODE_THREADED_EXPANDED', 4); /** * Constants to define the viewing orders for comment listings */ -define('COMMENT_ORDER_NEWEST_FIRST', 0); -define('COMMENT_ORDER_OLDEST_FIRST', 1); +define('COMMENT_ORDER_NEWEST_FIRST', 1); +define('COMMENT_ORDER_OLDEST_FIRST', 2); /** * Constants to define the position of the comment controls @@ -696,11 +696,6 @@ function comment_links($comment, $return = 1) { function comment_render($node, $cid = 0) { global $user; - $mode = $_GET['mode']; - $order = $_GET['order']; - $comments_per_page = $_GET['comments_per_page']; - $comment_page = $_GET['comment_page']; - $output = ''; if (user_access('access comments')) { @@ -710,17 +705,9 @@ function comment_render($node, $cid = 0) { $nid = 0; } - if (!isset($mode)) { - $mode = isset($user->mode) ? $user->mode : (isset($_SESSION['comment_mode']) ? $_SESSION['comment_mode'] : variable_get('comment_default_mode', COMMENT_MODE_THREADED_EXPANDED)); - } - - if (!isset($order)) { - $order = isset($user->sort) ? $user->sort : (isset($_SESSION['comment_sort']) ? $_SESSION['comment_sort'] : variable_get('comment_default_order', COMMENT_ORDER_NEWEST_FIRST)); - } - - if (empty($comments_per_page)) { - $comments_per_page = $user->comments_per_page ? $user->comments_per_page : ($_SESSION['comment_comments_per_page'] ? $_SESSION['comment_comments_per_page'] : variable_get('comment_default_per_page', '50')); - } + $mode = _comment_get_display_setting('mode'); + $order = _comment_get_display_setting('sort'); + $comments_per_page = _comment_get_display_setting('comments_per_page'); $output .= "<a id=\"comment\"></a>\n"; @@ -866,9 +853,7 @@ function comment_render($node, $cid = 0) { } } - // Use the standard pager; $pager_total is the number of returned rows, - // is global and defined in pager.inc. - $output .= theme('pager', NULL, $comments_per_page, 0, array('comments_per_page' => $comments_per_page)); + $output .= theme('pager', NULL, $comments_per_page, 0); if (db_num_rows($result) && (variable_get('comment_controls', COMMENT_CONTROLS_HIDDEN) == COMMENT_CONTROLS_BELOW || variable_get('comment_controls', COMMENT_CONTROLS_HIDDEN) == COMMENT_CONTROLS_ABOVE_BELOW)) { $output .= comment_controls($mode, $order, $comments_per_page); @@ -1672,6 +1657,49 @@ function _comment_per_page() { return drupal_map_assoc(array(10, 30, 50, 70, 90, 150, 200, 250, 300)); } +/** + * Return a current comment display setting + * + * $setting can be one of these: 'mode', 'sort', 'comments_per_page' + */ +function _comment_get_display_setting($setting) { + global $user; + + if ($_GET[$setting]) { + $value = $_GET[$setting]; + } + else { + // get the setting's site default + switch ($setting) { + case 'mode': + $default = variable_get('comment_default_mode', COMMENT_MODE_THREADED_EXPANDED); + break; + case 'sort': + $default = variable_get('comment_default_order', COMMENT_ORDER_NEWEST_FIRST); + break; + case 'comments_per_page': + $default = variable_get('comment_default_per_page', '50'); + } + if (variable_get('comment_controls', COMMENT_CONTROLS_HIDDEN) == COMMENT_CONTROLS_HIDDEN) { + // if comment controls are disabled use site default + $value = $default; + } + else { + // otherwise use the user's setting if set + if ($user->$setting) { + $value = $user->$setting; + } + else if ($_SESSION['comment_'. $setting]) { + $value = $_SESSION['comment_'. $setting]; + } + else { + $value = $default; + } + } + } + return $value; +} + /** * Updates the comment statistics for a given node. This should be called any * time a comment is added, deleted, or updated. diff --git a/modules/comment/comment.module b/modules/comment/comment.module index afaf5492f968c3c4683e5d0416683de142733e13..83fae38b7b28e1c97c712512b1e5c67f999c50cd 100644 --- a/modules/comment/comment.module +++ b/modules/comment/comment.module @@ -19,16 +19,16 @@ /** * Constants to define the viewing modes for comment listings */ -define('COMMENT_MODE_FLAT_COLLAPSED', 0); -define('COMMENT_MODE_FLAT_EXPANDED', 1); -define('COMMENT_MODE_THREADED_COLLAPSED', 2); -define('COMMENT_MODE_THREADED_EXPANDED', 3); +define('COMMENT_MODE_FLAT_COLLAPSED', 1); +define('COMMENT_MODE_FLAT_EXPANDED', 2); +define('COMMENT_MODE_THREADED_COLLAPSED', 3); +define('COMMENT_MODE_THREADED_EXPANDED', 4); /** * Constants to define the viewing orders for comment listings */ -define('COMMENT_ORDER_NEWEST_FIRST', 0); -define('COMMENT_ORDER_OLDEST_FIRST', 1); +define('COMMENT_ORDER_NEWEST_FIRST', 1); +define('COMMENT_ORDER_OLDEST_FIRST', 2); /** * Constants to define the position of the comment controls @@ -696,11 +696,6 @@ function comment_links($comment, $return = 1) { function comment_render($node, $cid = 0) { global $user; - $mode = $_GET['mode']; - $order = $_GET['order']; - $comments_per_page = $_GET['comments_per_page']; - $comment_page = $_GET['comment_page']; - $output = ''; if (user_access('access comments')) { @@ -710,17 +705,9 @@ function comment_render($node, $cid = 0) { $nid = 0; } - if (!isset($mode)) { - $mode = isset($user->mode) ? $user->mode : (isset($_SESSION['comment_mode']) ? $_SESSION['comment_mode'] : variable_get('comment_default_mode', COMMENT_MODE_THREADED_EXPANDED)); - } - - if (!isset($order)) { - $order = isset($user->sort) ? $user->sort : (isset($_SESSION['comment_sort']) ? $_SESSION['comment_sort'] : variable_get('comment_default_order', COMMENT_ORDER_NEWEST_FIRST)); - } - - if (empty($comments_per_page)) { - $comments_per_page = $user->comments_per_page ? $user->comments_per_page : ($_SESSION['comment_comments_per_page'] ? $_SESSION['comment_comments_per_page'] : variable_get('comment_default_per_page', '50')); - } + $mode = _comment_get_display_setting('mode'); + $order = _comment_get_display_setting('sort'); + $comments_per_page = _comment_get_display_setting('comments_per_page'); $output .= "<a id=\"comment\"></a>\n"; @@ -866,9 +853,7 @@ function comment_render($node, $cid = 0) { } } - // Use the standard pager; $pager_total is the number of returned rows, - // is global and defined in pager.inc. - $output .= theme('pager', NULL, $comments_per_page, 0, array('comments_per_page' => $comments_per_page)); + $output .= theme('pager', NULL, $comments_per_page, 0); if (db_num_rows($result) && (variable_get('comment_controls', COMMENT_CONTROLS_HIDDEN) == COMMENT_CONTROLS_BELOW || variable_get('comment_controls', COMMENT_CONTROLS_HIDDEN) == COMMENT_CONTROLS_ABOVE_BELOW)) { $output .= comment_controls($mode, $order, $comments_per_page); @@ -1672,6 +1657,49 @@ function _comment_per_page() { return drupal_map_assoc(array(10, 30, 50, 70, 90, 150, 200, 250, 300)); } +/** + * Return a current comment display setting + * + * $setting can be one of these: 'mode', 'sort', 'comments_per_page' + */ +function _comment_get_display_setting($setting) { + global $user; + + if ($_GET[$setting]) { + $value = $_GET[$setting]; + } + else { + // get the setting's site default + switch ($setting) { + case 'mode': + $default = variable_get('comment_default_mode', COMMENT_MODE_THREADED_EXPANDED); + break; + case 'sort': + $default = variable_get('comment_default_order', COMMENT_ORDER_NEWEST_FIRST); + break; + case 'comments_per_page': + $default = variable_get('comment_default_per_page', '50'); + } + if (variable_get('comment_controls', COMMENT_CONTROLS_HIDDEN) == COMMENT_CONTROLS_HIDDEN) { + // if comment controls are disabled use site default + $value = $default; + } + else { + // otherwise use the user's setting if set + if ($user->$setting) { + $value = $user->$setting; + } + else if ($_SESSION['comment_'. $setting]) { + $value = $_SESSION['comment_'. $setting]; + } + else { + $value = $default; + } + } + } + return $value; +} + /** * Updates the comment statistics for a given node. This should be called any * time a comment is added, deleted, or updated.