【发布时间】: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