2011-01-14 4 views
2

template.php 안에 다음 theme_pager 함수가 있습니다. 문제는 각 페이지 번호 다음에 "200의 1-25 표시"가 표시된다는 것입니다. 상단에 한 번만 표시하려면 어떻게해야합니까?drupal 페이지 매김을 수정하기위한 theme_pager

function themename_pager($tags = array(), $limit = 10, $element = 0, $parameters = array(), $quantity = 9) { 
    global $pager_page_array, $pager_total; 
    $tags = array("", "< prev", "", "next >", ""); 

    // Calculate various markers within this pager piece: 
    // Middle is used to "center" pages around the current page. 
    $pager_middle = ceil($quantity/2); 
    // current is the page we are currently paged to 
    $pager_current = $pager_page_array[$element] + 1; 
    // first is the first page listed by this pager piece (re quantity) 
    $pager_first = $pager_current - $pager_middle + 1; 
    // last is the last page listed by this pager piece (re quantity) 
    $pager_last = $pager_current + $quantity - $pager_middle; 
    // max is the maximum page number 
    $pager_max = $pager_total[$element]; 
    // End of marker calculations. 

    // Prepare for generation loop. 
    $i = $pager_first; 
    if ($pager_last > $pager_max) { 
    // Adjust "center" if at end of query. 
    $i = $i + ($pager_max - $pager_last); 
    $pager_last = $pager_max; 
    } 
    if ($i <= 0) { 
    // Adjust "center" if at start of query. 
    $pager_last = $pager_last + (1 - $i); 
    $i = 1; 
    } 
    // End of generation loop preparation. 
    $view = views_get_current_view(); 

    // ensure view exists 
    if (!$view) return; 

    // set object property to return total rows 
    $view->get_total_rows = true; 



    // set display_id 
    $view->set_display($display_id); 

    // execute view 
    $view->execute(); 

    // acquire data from views object and $_REQUEST  
    $itemsPerPage = $view->pager['items_per_page']; 
    $currentPage = $_REQUEST['page']+1; 
    $total = $view->total_rows; 

    // start calculation  
    $start = 25*$currentPage-24; 
    $end = $itemsPerPage * $currentPage; 

    if ($end>$total) $end = $total; 

    // return html 
    $x = "<center>Displaying $start - $end of $total</center>"; 
    $li_previous = theme('pager_previous', (isset($tags[1]) ? $tags[1] : t('‹ previous')), $limit, $element, 1, $parameters); 
    $li_next = theme('pager_next', (isset($tags[3]) ? $tags[3] : t('next ›')), $limit, $element, 1, $parameters); 

    if ($pager_total[$element] > 1) { 

     if ($li_previous) { 
     $items[] = array(
     'class' => 'pager-previous', 
     'data' => $li_previous, 
    ); 
     } 

    // When there is more than one page, create the pager list. 
    if ($i != $pager_max) { 
     // Now generate the actual pager piece. 
     for (; $i <= $pager_last && $i <= $pager_max; $i++) { 
     if ($i < $pager_current) { 
      if ($pager_first > 1 && $i == $pager_first) { 
       $output = '...'.$i; 
       $stopPreEllipsis = true; 
      } else { 
       $output = $i; 
      } 
      $items[] = array(
      'class' => 'pager-item', 
      'data' => theme('pager_previous', $output, $limit, $element, ($pager_current - $i), $parameters), 
     ); 
     } 
     if ($i == $pager_current) { 
      $items[] = array(
      'class' => 'pager-current', 
      'data' => $i, 
     ); 
     } 
     if ($i > $pager_current) { 

      if ($pager_last < $pager_max && $i == $pager_last) { 
       $output = $i.'...'; 
      } else { 
       $output = $i; 
      } 

      $items[] = array(
      'class' => 'pager-item', 
      'data' => theme('pager_next', $output, $limit, $element, ($i - $pager_current), $parameters), 
     ); 
      $items[] = array(
      'class' => 'pager', 
      'data' => $x, 
     ); 
     } 
     } 
    } 
    // End generation. 
    if ($li_next) { 
     $items[] = array(
     'class' => 'pager-next', 
     'data' => $li_next, 
    ); 
    } 

    return theme('item_list', $items, NULL, 'ul', array('class' => 'pager')); 
    } 
    } 

답변

0

제거 이러한 라인 :

$items[] = array(
    'class' => 'pager', 
    'data' => $x, 
); 

그리고 (마지막 줄을 변경)이 같은 호출기 항목의 목록 전에 $x을 반환 :

return $x . theme('item_list', $items, NULL, 'ul', array('class' => 'pager')); 
관련 문제