Общее количество страниц в pager

Главные вкладки

Аватар пользователя alesel alesel 15 марта 2013 в 20:43

Привет всем гуру друпала. Скажите пожалуйста, как мне переопределить theme_pager, чтобы после выводимых номеров страниц вывелось общее количество страниц данного пейджера?
Пример -
Заранее спасибо всем. Буду очень признателен.

ВложениеРазмер
Иконка изображения a8fc029419165fe408f36580af3cc5a8.jpg6.32 КБ

Комментарии

Аватар пользователя alesel alesel 15 марта 2013 в 21:58

"Chyvakoff" wrote:
Не?

Я понимаю, что можно все попробовать задействовать через quantity. Но как мне вывести это значение? Друпал начал познавать недавно, пока что с api разбираюсь с трудом)

Аватар пользователя alesel alesel 16 марта 2013 в 0:42

Проблема решена. Пример моего кода

<?php
function fist_pager($variables) {
  
$tags $variables['tags'];
  
$element $variables['element'];
  
$parameters $variables['parameters'];
  
$quantity $variables['quantity'];
  global 
$pager_page_array$pager_total;

  

// 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 + ($i);
    
$i 1;
  }
  
// End of generation loop preparation.

  

$li_first1 theme('pager_first', array('text' => (isset($tags[0]) ? $tags[0] : t('1')), 'element' => $element'parameters' => $parameters));
    
$li_first theme('pager_first', array('text' => (isset($tags[0]) ? $tags[0] : t('« first')), 'element' => $element'parameters' => $parameters));
  
$li_previous theme('pager_previous', array('text' => (isset($tags[1]) ? $tags[1] : t('‹ previous')), 'element' => $element'interval' => 1'parameters' => $parameters));
  
$li_next theme('pager_next', array('text' => (isset($tags[3]) ? $tags[3] : t('next ›')), 'element' => $element'interval' => 1'parameters' => $parameters));
    
$li_last2 theme('pager_last', array('text' => (isset($tags[4]) ? $tags[4] : $pager_max), 'element' => $element'parameters' => $parameters));

  

$li_last theme('pager_last', array('text' => (isset($tags[4]) ? $tags[4] : t('last »')), 'element' => $element'parameters' => $parameters));
 
//$li_last = theme('pager_last', $pager_max, $limit, $element, $parameters);
  
if ($pager_total[$element] > 1) {
    if (
$li_first) {
      
$items[] = array(
        
'class' => array('pager-first'),
        
'data' => $li_first,
      );
    }
    if (
$li_previous) {
      
$items[] = array(
        
'class' => array('pager-previous'),
        
'data' => $li_previous,
      );
    }

    

// When there is more than one page, create the pager list.
    
if ($i != $pager_max) {
      if (
$i 1) {
        
$items[] = array(
          
'class' => array('pager-ellipsis'),
          
'data' => $li_first1,
        );
      }
      
// Now generate the actual pager piece.
      
for (; $i <= $pager_last && $i <= $pager_max$i++) {
        if (
$i $pager_current) {
          
$items[] = array(
            
'class' => array('pager-item'),
            
'data' => theme('pager_previous', array('text' => $i'element' => $element'interval' => ($pager_current $i), 'parameters' => $parameters)),
          );
        }
        if (
$i == $pager_current) {
          
$items[] = array(
            
'class' => array('pager-current'),
            
'data' => $i,
          );
        }
        if (
$i $pager_current) {
          
$items[] = array(
            
'class' => array('pager-item'),
            
'data' => theme('pager_next', array('text' => $i'element' => $element'interval' => ($i $pager_current), 'parameters' => $parameters)),
          );
        }
      }
      if (
$i $pager_max) {
        
$items[] = array(
          
'class' => array('pager-ellipsis'),
          
'data' => $li_last2,
        );
      }
    }
    
// End generation.
    
if ($li_next) {
      
$items[] = array(
        
'class' => array('pager-next'),
        
'data' => $li_next,
      );
    }
    if (
$li_last) {
      
$items[] = array(
        
'class' => array('pager-last'),
        
'data' => $li_last,
      );
    }
    

    
    return 

'<h2 class="element-invisible">' t('Pages') . '</h2>' theme('item_list', array(
      
'items' => $items,
      
'attributes' => array('class' => array('pager')),
    ));
  }
}
?>