white-october/pagerfanta-bundle

此包已被废弃,不再维护。作者建议使用 babdev/pagerfanta-bundle 包。

用于在 Symfony2 中使用 Pagerfanta 的 Bundle

安装次数: 11,283,867

依赖项: 109

建议者: 10

安全: 0

星标: 482

关注者: 33

分支: 110

开放问题: 15

类型:symfony-bundle

v1.3.2 2019-12-02 14:19 UTC

README

此项目不再维护。如果您正在使用 Symfony 3.4、4.4 或 5,您可能希望使用 此分支

WhiteOctoberPagerfantaBundle

Build Status Scrutinizer Quality Score SensioLabsInsight

用于与 PagerfantaSymfony 一起使用的 Bundle。

注意:如果您正在使用 Symfony2 的 2.0.x 版本,请使用此 Bundle 的 symfony2.0 分支。此 Bundle 的 master 分支跟踪 Symfony 的 master 分支。

此 Bundle 包括

  • 用于渲染带有视图和选项的 pagerfantas 的 Twig 函数。
  • 轻松使用视图的方法。
  • 在视图中重用选项的方法。
  • DefaultView 的基本 CSS。

安装

  1. 使用 Composer 下载库
php composer.phar require white-october/pagerfanta-bundle
  1. 然后添加 WhiteOctoberPagerfantaBundle 到您的应用

Symfony < 4

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
        // ...
    );
}

Symfony 4 中使用 Symfony Flex,这将为您自动完成。

  1. 配置和使用

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 文件。