SimplePaginationBundle для Symfony2

Этот бандл позволяет добавить постраничную навигацию в свой проект на Symfony2.

GitHub

Установка через Composer - менеджер php пакетов

$ composer require evheniy/simple-pagination-bundle "1.*"

Или добавить в composer.json:

"evheniy/simple-pagination-bundle": "1.*"

AppKernel:

public function registerBundles()
    {
        $bundles = array(
            ...
            new Evheniy\SimplePaginationBundle\SimplePaginationBundle(),
        );
        ...

Контроллер

$pagination = $this->container->get('pagination');
$pageParameter = 'page';//имя параметра
$page = $request->get($pageParameter, 1);//номер страницы
$size = $request->get('size', 10);//количество результатов поиска на странице
$range = 10;//количество ссылок навигации
 
...
 
return $this->render(
     'AppBundle:Default:index.html.twig',
     array(
         ...
         'pagination'  => $pagination->paginate(
             $request->get('_route'),
             $resultsCount,
             $page,
             $size,
             $range,
             $request->query->all()
             $pageParameter
         )
     )
);

Добавте эту строку в основной шаблон:

Версия для шаблона с использованием TwitterBootstrap

{% include "SimplePaginationBundle::pagination.bootstrap.html.twig" %}

Или простой вариант:

{% include "SimplePaginationBundle::pagination.html.twig" %}

Но не забудьте добавить стили, например такие:

<style>
    .pagination {
        text-align: center;
    }
    .pagination span a {
        display: inline-block;
        padding: 4px 8px;
        margin: 3px;
        font-size: 12px;
        font-weight: normal;
        line-height: 1.42857143;
        text-align: center;
        white-space: nowrap;
        vertical-align: middle;
        cursor: pointer;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        border: 1px solid transparent;
        border-radius: 4px;
        color: #333;
        background-color: #fff;
        border-color: #ccc;
    }
    .pagination span a:hover {
        color: #333;
        text-decoration: none;
    }
    .pagination span a:active {
        outline: thin dotted;
        outline: 5px auto -webkit-focus-ring-color;
        outline-offset: -2px;
    }
    .pagination span.current {
        display: inline-block;
        padding: 4px 8px;
        margin-bottom: 0;
        font-size: 14px;
        font-weight: bold;
        line-height: 1.42857143;
        text-align: center;
        white-space: nowrap;
        vertical-align: middle;
        cursor: pointer;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        background-image: none;
        border: 1px solid transparent;
        border-radius: 4px;
        color: #333;
        background-color: #fff;
        border-color: #ccc;
    }
</style>

Лицензия

Этот бандл использует лицензию MIT.

Демо

Теги: Simplepaginationbundle, Simple, Symfony2, Pagination, Постраничная навигация, Пагинация, Pagination


Похожие статьи

HTML5VertiTemplateBundle для Symfony2

TwitterBootstrapBundle для Symfony2

MaterializeBundle для Symfony2

SimpleTaskFSMBundle для Symfony2

JqueryBundle для Symfony2

HTML5CacheBundle для Symfony2

RobotsTxtBundle для Symfony2

GtmBundle (Google Tag Manager) для Symfony2

SitemapXmlBundle для Symfony2