2013-02-28 89 views
1

这个问题直接关系到Concrete5 CMS。Concrete5分页 - 限制输出页数

我使用的是内置的分页帮手在我的网页类型中的一种,我想限制它用下面的代码呈现的页数:<?php echo $paginator->getPages(); ?>

下面是我使用的整个代码在模板中:

if ($paginate && $num > 0 && is_object($pl)): ?> 
<div class="pagination"> 
    <?php 
    $summary = $pl->getSummary(); 
    if ($summary->pages > 1): 
     $paginator = $pl->getPagination(); 
    ?> 
     <span class="page-prev"><?php echo $paginator->getPrevious('Prev'); ?></span> 
     <span class="pages"><?php echo $paginator->getPages(); ?></span> 
     <span class="page-next"><?php echo $paginator->getNext('Next'); ?></span> 
    <?php endif; ?> 
</div> 
endif; 

现在,我的页面列表设置为每页显示5项。我有35项,因此我的分页看起来像这样:

一个[1] 2 3 4 5 6 7下一页

(在1周围括号表示活动页)

I” d想限制分页一次只显示5页。因此,它看起来像这样:

上一页[1] 2 3 4 5下一页

如果你是第5页,它看起来像这样:

一个3 4 [5] 6 7 Next

依此类推。它不需要像这样工作。我主要关心的是限制$ paginator-> getPages()得到输出的页面数量;

我搜索了高和低,但我找不到任何有关如何实现这一目标的信息。谁能帮我吗?

+0

奇怪......如果你看一下分页类的GETPAGES()函数的代码(在'/混凝土/核心/助理/ pagination.php',各地开始行在Concrete5.6.1中#195),它看起来应该完全按照你所要求的 - 在下一个/前5个结果之前和之后输出点。您正在使用哪个版本的Concrete5? – 2013-03-07 17:24:07

+0

我昨天发现,当我更多地看着它时。我猜想在显示点之前它会显示的默认最大页数是7.所以我从来没有看到这些点。一旦我找到了分页助手,我可以通过将它改为显示4页,然后点,然后是最后一页数,或多或少地获得它的工作方式。 – norsewulf 2013-03-07 17:50:41

回答

2

对我而言,答案是改变$ proximity的值。数字定义了活动页码旁边显示的页码数量。在我view.php 代码示例

<div class="ccm-pagination-outer-wrapper"> 
    <?php 
     $showPagination = true; 
     $options = array(
      'prev_message'  => t('← Previous page'), 
      'next_message'  => t('Next page →'), 
      'proximity'   => 0 
     ); 
     echo $pagination->renderDefaultView($options); 
    ?> 
</div>