Index: includes/common.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/common.inc,v retrieving revision 1.765 diff -u -u -p -r1.765 common.inc --- includes/common.inc 6 May 2008 12:18:45 -0000 1.765 +++ includes/common.inc 10 May 2008 20:57:08 -0000 @@ -2915,6 +2915,9 @@ function drupal_common_theme() { 'pager' => array( 'arguments' => array('tags' => array(), 'limit' => 10, 'element' => 0, 'parameters' => array()), ), + 'pager_range' => array( + 'arguments' => array('limit' => 10, 'element' => 0), + ), 'pager_first' => array( 'arguments' => array('text' => NULL, 'limit' => NULL, 'element' => 0, 'parameters' => array()), ), Index: includes/pager.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/pager.inc,v retrieving revision 1.63 diff -u -u -p -r1.63 pager.inc --- includes/pager.inc 6 Dec 2007 09:58:30 -0000 1.63 +++ includes/pager.inc 10 May 2008 20:57:09 -0000 @@ -214,6 +214,34 @@ function theme_pager($tags = array(), $l } } +/** + * Format pager ranges on the total number of items. + * + * @param $element + * An optional integer to distinguish between multiple pagers on one page. + */ +function theme_pager_range($limit = 10, $element = 0) { + global $pager_page_array, $pager_total, $pager_total_items; + + // Prepare additional information about the current paging status. + $from = $pager_page_array[$element] * $limit + 1; + $to = min(($pager_page_array[$element] + 1) * $limit, $pager_total_items[$element]); + if ($pager_total_items[$element] == 1) { + $pager_range = t('1 item'); + } + elseif ($pager_total_items[$element] > 1) { + if ($from == $to) { + $pager_range = t('Item @to of @total', array('@to' => $to, '@total' => $pager_total_items[$element])); + } + elseif ($pager_total_items[$element] <= $limit) { + $pager_range = t('@total items', array('@total' => $pager_total_items[$element])); + } + else { + $pager_range = t('Items @from - @to of @total', array('@from' => $from, '@to' => $to, '@total' => $pager_total_items[$element])); + } + } + return '
' . $pager_range . '
'; +} /** * @name Pager pieces Index: modules/search/search-results.tpl.php =================================================================== RCS file: /cvs/drupal/drupal/modules/search/search-results.tpl.php,v retrieving revision 1.1 diff -u -u -p -r1.1 search-results.tpl.php --- modules/search/search-results.tpl.php 31 Oct 2007 18:06:38 -0000 1.1 +++ modules/search/search-results.tpl.php 10 May 2008 20:57:11 -0000 @@ -25,3 +25,4 @@ + Index: modules/search/search.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/search/search.pages.inc,v retrieving revision 1.5 diff -u -u -p -r1.5 search.pages.inc --- modules/search/search.pages.inc 14 Apr 2008 17:48:41 -0000 1.5 +++ modules/search/search.pages.inc 10 May 2008 20:57:11 -0000 @@ -63,7 +63,8 @@ function template_preprocess_search_resu foreach ($variables['results'] as $result) { $variables['search_results'] .= theme('search_result', $result, $variables['type']); } - $variables['pager'] = theme('pager', NULL, 10, 0); + $variables['pager'] = theme('pager'); + $variables['pager_range'] = theme('pager_range'); // Provide alternate search results template. $variables['template_files'][] = 'search-results-' . $variables['type']; }