【问题标题】:Concrete5 Pagination - Limit Number of Pages Being OutputConcrete5 Pagination - 限制输出的页数
【发布时间】:2013-02-15 01:49:28
【问题描述】:

这个问题与 Concrete5 CMS 直接相关。

我在我的一种页面类型中使用内置的分页助手,我想使用以下代码限制它呈现的页面数量:<?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周围的括号代表活动页面)

我想将分页限制为一次仅显示 5 页。所以它看起来像这样:

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

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

上一页 3 4 [5] 6 7 下一页

等等。它不需要完全像这样工作。我主要关心的是限制 $paginator->getPages(); 输出的页面数量;

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

【问题讨论】:

  • 奇怪...如果您查看分页类的 getPages() 函数的代码(在 /concrete/core/helpers/pagination.php 中,从 Concrete5.6.1 中的第 195 行开始),它看起来应该是完全按照您的要求进行 - 在下一个/前 5 个结果之前和之后输出点。您使用的是哪个版本的 Concrete5?
  • 我昨天在深入研究时发现了这一点。我猜它在显示点之前将显示的默认最大页数是 7。所以我一开始就没有看到这些点。一旦我找到了分页助手,我就可以通过将其更改为显示 4 页,然后是点,然后是最后一个页码,或多或少地让它按我想要的方式工作。

标签: php pagination concrete5


【解决方案1】:

我的答案是改变 $proximity 数字的值。 Number 定义显示在活动页码旁边的页码数。 我的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>

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多