继续Drupal分享精神 站长QQ:2275288328 skype: hellodrupal 【drupal交流+drupal 建站 drupal theme制作,wordpress 开发】
登录 注册

drupal 分页效果,上一页 下一页如何修改呢

默认的drupal theme pager的分页如何修改呢?比如说修改上一页,下一页文字。

想看看这个

想看看这个

瞅瞅

瞅瞅

1) 在你的theme 目录下面建立一个

1) 在你的theme 目录下面建立一个 template.php文件
2) 主要适用 theme_pager();
拷贝你下面theme page drupal 分页代码到template.php文件里,主要是覆写这个theme pager函数。

<?php

function yourthemename_pager($tags = array(), $limit = 10, $element = 0, $parameters = array(), $quantity = 9) {
  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 + (1 - $i);
   
$i = 1;
  }
 
// End of generation loop preparation.

 
$li_first = theme('pager_first', (isset($tags[0]) ? $tags[0] : t('« first')), $limit, $element, $parameters);
 
$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);
 
$li_last = theme('pager_last', (isset($tags[4]) ? $tags[4] : t('last »')), $limit, $element, $parameters);

  if (
$pager_total[$element] > 1) {
    if (
$li_first) {
     
$items[] = array(
       
'class' => 'pager-first',
       
'data' => $li_first,
      );
    }
    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) {
      if (
$i > 1) {
       
$items[] = array(
         
'class' => 'pager-ellipsis',
         
'data' => '…',
        );
      }
     
// Now generate the actual pager piece.
     
for (; $i <= $pager_last && $i <= $pager_max; $i++) {
        if (
$i < $pager_current) {
         
$items[] = array(
           
'class' => 'pager-item',
           
'data' => theme('pager_previous', $i, $limit, $element, ($pager_current - $i), $parameters),
          );
        }
        if (
$i == $pager_current) {
         
$items[] = array(
           
'class' => 'pager-current',
           
'data' => $i,
          );
        }
        if (
$i > $pager_current) {
         
$items[] = array(
           
'class' => 'pager-item',
           
'data' => theme('pager_next', $i, $limit, $element, ($i - $pager_current), $parameters),
          );
        }
      }
      if (
$i < $pager_max) {
       
$items[] = array(
         
'class' => 'pager-ellipsis',
         
'data' => '…',
        );
      }
    }
   
// End generation.
   
if ($li_next) {
     
$items[] = array(
       
'class' => 'pager-next',
       
'data' => $li_next,
      );
    }
    if (
$li_last) {
     
$items[] = array(
       
'class' => 'pager-last',
       
'data' => $li_last,
      );
    }
    return
theme('item_list', $items, NULL, 'ul', array('class' => 'pager'));
  }
}
?>

上面的theme_pager

上面的theme_pager 可以覆写分页显示效果,和现实个数,比如你每页显示多少。
几个参数简单说明:
$tags 一个数组里面包含分页的标签文字。比如你想修改上一页 下一页,第一页,最后一页这样的文字。可以用tags定义 array('x','y','z','d'); 会自动替换原有的文字。
$limit 查询结果最多每页显示多少个。
$quantity 分页列表显示个数 如 1,2,3,4,5,6.....

发表新评论

此内容将保密,不会被其他人看见。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
  • You can use BBCode tags in the text.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

更多关於格式化选项的信息

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.