2016-02-19 3 views
2

У меня установлен Pagerfanta и работает, однако мне трудно настроить макет. Я прочитал на Github, что мне нужно пройти через my_template, однако я не уверен, где это должно быть настроено и что конкретно это означает.Настройка макета страницы Pagerfanta с помощью настраиваемого шаблона

Пользовательский шаблон

Если вы хотите использовать пользовательский шаблон, добавьте еще один аргумент

<div class="pagerfanta"> 
    {{ pagerfanta(my_pager, 'my_template') }} 
</div> 

В идеале я хотел бы иметь свой собственный шаблон Twig, что я могу изменить, но я не» t знает, поддерживает ли Pagerfanta это. Все ли сделано в PHP?

ответ

8

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

Допустим, в вашем AppBundle, вам нужно будет создать MyCustomTemplate класс, который должен расширить Pagerfanta\View\Template\DefaultTemplate:

<?php 

namespace Acme\AppBundle\Template; 

use Pagerfanta\View\Template\DefaultTemplate; 

class MyCustomTemplate extends DefaultTemplate 
{ 
    // override whatever you need here ... 
} 

затем зарегистрировать его в файле services.yml вместе с услугой просмотра:

services: 
    acme_app.template.my_template: 
     class: Acme\AppBundle\Template\MyCustomTemplate 

    pagerfanta.view.my_template: 
     class: Pagerfanta\View\DefaultView 
     public: false 
     arguments: 
      - "@acme_app.template.my_template" 
     tags: [{ name: pagerfanta.view, alias: my_template }] 

, то в ваших Twig-шаблонах вы сможете использовать:

{{ pagerfanta(my_pager, 'my_template') }} 

, что приведет к отображению вашего пользовательского шаблона разбиения на страницы.

0

my_template - это псевдоним вашего вида. Следующий раздел ссылки Github, который вы предоставили, объясняет больше.

Это будет выглядеть как этот

services: 
    app.view.my_template: 
     class: App\View\MyView 
     public: false 
     tags: [{ name: pagerfanta.view, alias: my_template }]