Как правильно отцентрировать пагинацию KNP Paginator Bundle? - PullRequest
0 голосов
/ 23 января 2020

У меня есть проект Symfony 5, в котором я использую KNP Paginator Bundle для разбиения на страницы некоторых результатов. Я использую шаблон @KnpPaginator/Pagination/twitter_bootstrap_v4_pagination.html.twig для рендеринга блока разбиения на страницы. Тем не менее, я хотел бы, чтобы он был в центре моей страницы.

Я посмотрел на шаблон и увидел этот фрагмент кода:

{% if pageCount > 1 %}
    <nav>
        {% set classAlign = (align is not defined) ? '' : align=='center' ? ' justify-content-center' : (align=='right' ? ' justify-content-end' : '') %}
        {% set classSize = (size is not defined) ? '' : size=='large' ? ' pagination-lg' : (size=='small' ? ' pagination-sm' : '') %}
        <ul class="pagination{{ classAlign }}{{ classSize }}">
        {# ... #}

Итак Я использовал глобальную веточку переменная для центрирования моего блока разбиения на страницы путем добавления его в конфигурацию Twig:

# config/packages/twig.yaml
twig:
    # ...
    globals:
        align: 'center'

Тем не менее, я думаю, что это неправильный способ, так как это может вызвать конфликты с некоторыми другими пакетами или даже с моим собственным код. Я также думаю, что переопределение шаблона для ручного центрирования блока не совсем правильный способ, и я не нашел ничего в документации, чтобы просто и элегантно делать то, что я хочу сделать. Тем не менее, я думаю, что align переменная Twig в шаблоне KNP Paginator может быть установлена ​​другим способом ...

Если у кого-то есть менее разрушительный способ центрировать этот блок, это будет с радостью приветствовать.

1 Ответ

1 голос
/ 09 февраля 2020

Ты совершенно прав. Эта переменная align может быть установлена ​​с помощью метода setCustomParameters. Вот пример:

$pagination->setCustomParameters([
    'align' => 'center', # center|right (for template: twitter_bootstrap_v4_pagination)
    'size' => 'large', # small|large (for template: twitter_bootstrap_v4_pagination)
    'style' => 'bottom',
    'span_class' => 'whatever',
]);

Более подробную информацию вы можете найти здесь: https://github.com/KnpLabs/KnpPaginatorBundle/blob/master/docs/templates.md

...