2011-05-20 35 views
0

我进入了Drupal网站,发现theme_pager的主题钩子我已经从注释中复制代码来做一个简单的艺术风格的pager,因为这与我所需要的很接近当我implmenting它我得到Drupal 6 Pager stying - theme_pager问题“Array”

“1个阵列阵列阵列阵列”

这是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 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_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')); 
    } 
} 

请帮助。

Idealy我想是这样一个寻呼机:

< 1 2 3 4 5 6 7 8 9 10>(所有的页与下一个和前一个数字) - 但是,如果我能得到围绕阵列的这个问题那么我应该可以修改代码。

感谢 詹姆斯

+0

即使我将theme_pager代码编码到我的template.php中,并简单地添加回显以查看它是否正在工作,我也会得到相同的结果。那么奇怪的事情正在发生......? – jodm 2011-05-20 09:03:58

回答

1

安装devel的模块,替换用,DPMS代码中的所有打印语句。这样你就会知道数组的内容,然后你可以打印任何需要的内容。

+0

嗨,我稍后再说这个,让你知道我是怎么回事...但有一个问题。为什么代码不能在我的Drupal安装中工作,并罚款其他人? – jodm 2011-05-31 07:28:14