white-october / pagerfanta-bundle
Requires
- php: >=5.3.3
- pagerfanta/pagerfanta: ^1.1.0|^2.0.0
- symfony/framework-bundle: ~2.3|~3.0|~4.0
- symfony/property-access: ~2.3|~3.0|~4.0
- symfony/translation: ~2.3|~3.0|~4.0
- symfony/twig-bundle: ~2.3|~3.0|~4.0
Requires (Dev)
- phpunit/phpunit: ~3.7|~4.0|^5.0
- symfony/symfony: ~2.3|~3.0|~4.0
Conflicts
- twig/twig: <1.34|>=2.0,<2.4
- 2.1.x-dev
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- dev-master / 1.0.x-dev
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-fix_travis_php53_memory_limit
- dev-omit_first_page_false_by_default
- dev-pagerfanta_twig_extension_without_container
- dev-symfony2.0
This package is auto-updated.
Last update: 2020-11-15 19:33:28 UTC
README
此项目不再维护。如果您正在使用 Symfony 3.4、4.4 或 5,您可能希望使用 此分支。
WhiteOctoberPagerfantaBundle
用于与 Pagerfanta 和 Symfony 一起使用的 Bundle。
注意:如果您正在使用 Symfony2 的 2.0.x 版本,请使用此 Bundle 的 symfony2.0
分支。此 Bundle 的 master 分支跟踪 Symfony 的 master 分支。
此 Bundle 包括
- 用于渲染带有视图和选项的 pagerfantas 的 Twig 函数。
- 轻松使用视图的方法。
- 在视图中重用选项的方法。
- DefaultView 的基本 CSS。
安装
- 使用 Composer 下载库
php composer.phar require white-october/pagerfanta-bundle
- 然后添加 WhiteOctoberPagerfantaBundle 到您的应用
Symfony < 4
// app/AppKernel.php public function registerBundles() { return array( // ... new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(), // ... ); }
Symfony 4 中使用 Symfony Flex,这将为您自动完成。
- 配置和使用
A) 创建分页器 在 Pagerfanta 文档中有说明。如果您使用 Doctrine ORM,则希望使用 DoctrineORMAdapter
B) 在 Twig 中渲染 在下面的 渲染分页器 部分中有说明。
C) 配置 通过此文档进行说明
渲染分页器
首先,您需要将 Pagerfanta 实例作为参数传递到您的模板中。例如
$adapter = new DoctrineORMAdapter($queryBuilder); $pagerfanta = new Pagerfanta($adapter); return $this->render('@YourApp/Main/example.html.twig', [ 'my_pager' => $pagerfanta, ]);
然后调用 Pagerfanta Twig 扩展,传递 Pagerfanta 实例。路由会自动根据当前路由的变量“page”生成页面编号。默认情况下,此 Bundle 使用具有“default”名称的 DefaultView。默认语法是
<div class="pagerfanta"> {{ pagerfanta(my_pager) }} </div>
默认情况下,“page”变量也添加到指向第一页的链接中。要禁用在 URL 中生成 ?page=1
,只需在调用 pagerfanta
twig 函数时将 omitFirstPage
选项设置为 true
{{ pagerfanta(my_pager, 'default', { 'omitFirstPage': true}) }}
您可以省略模板参数,使函数调用更短,默认模板将被使用
{{ pagerfanta(my_pager, { 'omitFirstPage': true }) }}
如果您在一页上有多个分页器,则需要更改 page
参数的名称。以下是一个示例
<div class="pagerfanta"> {{ pagerfanta(my_other_pager, 'default', {'pageParameter': '[page_other]'}) }} </div>
注意 page_other
周围的方括号;没有它们将不会工作。
Twitter Bootstrap
此 Bundle 还有一个 Twitter Bootstrap 视图。
对于 Bootstrap 2
<div class="pagerfanta"> {{ pagerfanta(my_pager, 'twitter_bootstrap') }} </div>
对于 Bootstrap 3
<div class="pagerfanta"> {{ pagerfanta(my_pager, 'twitter_bootstrap3') }} </div>
对于 Bootstrap 4
<div class="pagerfanta"> {{ pagerfanta(my_pager, 'twitter_bootstrap4') }} </div>
自定义模板
如果您想使用自定义模板,请添加另一个参数
<div class="pagerfanta"> {{ pagerfanta(my_pager, 'my_template') }} </div>
带有选项
{{ pagerfanta(my_pager, 'default', { 'proximity': 2}) }}
请参阅Pagerfanta 文档以获取可能的参数列表。
渲染项目页面本身
可以使用 currentPageResults
来检索项目。例如
{% for item in my_pager.currentPageResults %} <ul> <li>{{ item.id }}</li> </ul> {% endfor %}
用您的语言翻译
该组件还提供了两种视图来翻译 默认 和 twitter bootstrap 视图。
{{ pagerfanta(my_pager, 'default_translated') }} {{ pagerfanta(my_pager, 'twitter_bootstrap_translated') }}
添加视图
视图通过 pagerfanta.view 标签添加到容器中
XML
<service id="pagerfanta.view.default" class="Pagerfanta\View\DefaultView" public="false"> <tag name="pagerfanta.view" alias="default" /> </service>
YAML
services: pagerfanta.view.default: class: Pagerfanta\View\DefaultView public: false tags: [{ name: pagerfanta.view, alias: default }]
重用选项
有时您想在项目中重用视图的选项,而您不希望每次渲染视图时都写它们,或者您可以为视图有不同的配置,并希望将它们保存在一个容易更改的地方。
为此,您必须使用特殊的视图 OptionableView 来定义视图
services: pagerfanta.view.my_view_1: class: Pagerfanta\View\OptionableView arguments: - @pagerfanta.view.default - { proximity: 2, prev_message: Anterior, next_message: Siguiente } public: false tags: [{ name: pagerfanta.view, alias: my_view_1 }] pagerfanta.view.my_view_2: class: Pagerfanta\View\OptionableView arguments: - @pagerfanta.view.default - { proximity: 5 } public: false tags: [{ name: pagerfanta.view, alias: my_view_2 }]
然后使用它
{{ pagerfanta(my_pager, 'my_view_1') }} {{ pagerfanta(my_pager, 'my_view_2') }}
渲染 pagerfantas(或分页器!)的最简单方法;()
默认视图的基本 CSS
该组件包含默认视图的基本 CSS,以便您可以更快地开始使用良好的分页器。当然,您可以更改它,使用另一个或创建自己的视图。
<link rel="stylesheet" href="{{ asset('bundles/whiteoctoberpagerfanta/css/pagerfantaDefault.css') }}" type="text/css" media="all" />
配置
您可以在配置文件中配置默认视图的所有渲染
white_october_pagerfanta: default_view: my_view_1
使无效的页面编号返回 HTTP 500
目前,当页面超出范围或不是数字时,服务器默认返回 404 响应。您可以将以下参数设置为默认值以外的值 to_http_not_found
(例如,null),以在请求的页面无效时显示 500 异常。
// app/config/config.yml white_october_pagerfanta: exceptions_strategy: out_of_range_page: ~ not_valid_current_page: ~
更多信息
有关更详细的文档,请参阅Pagerfanta 文档。
贡献
我们欢迎对此项目的贡献,包括拉取请求和问题(以及现有问题的讨论)。
如果您想贡献代码但不确定从哪里开始,请参阅问题列表。如果您是首次代码贡献者,您可能会发现 Github 的分叉项目指南很有用。
所有贡献者(无论是贡献代码、参与问题讨论,还是以任何其他方式参与)都必须遵守我们的行为准则。
致谢
本捆绑包的第一版本的大部分工作由 Pablo Díez 完成([email protected])。
该项目最初位于 https://github.com/whiteoctober/WhiteOctoberPagerfantaBundle。
许可协议
Pagerfanta 采用 MIT 许可协议进行许可。有关详细信息,请参阅 LICENSE 文件。