开发者

Drupal 6 Pager Stying - theme_pager issue "Array"

开发者 https://www.devze.com 2023-03-07 00:54 出处:网络
I went onto the Drupal website and found the theme hook for theme_pager I have copied the code from the comments to do a devient art style pager as this is close to what I need although when I am impl

I went onto the Drupal website and found the theme hook for theme_pager I have copied the code from the comments to do a devient art style pager as this is close to what I need although when I am implmenting it i am getting

"1 Array Array Array Array"

This is the code from http://api.drupal.org/api/drupal/includes--pager.inc/function/theme_pager/6:

 function yourthemename_pager($tags = array(), $limit = 10, $element = 0, $parameters = array(), $quantity = 5) {
  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 generat开发者_运维知识库ion 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.

 $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),
      );
    }
  }
}
// End generation.
if ($li_next) {
  $items[] = array(
    'class' => 'pager-next',
    'data' => $li_next,
  );
}

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

Please help.

Idealy I would like a pager like this:

< 1 2 3 4 5 6 7 8 9 10 > (all the page numbers with next and previous) - But if I can get around this issue of Array then I should be able to modify the code.

Thanks James


Install devel module, replace all the print statements in the code with, dpms. That way you will get to know what are contents of the array and then you can print whatever is required.

0

精彩评论

暂无评论...
验证码 换一张
取 消