Contao-Summit 2026
Ergebnis 1 bis 11 von 11

Thema: Pagination Template überschreiben

  1. #1
    Contao-Nutzer
    Registriert seit
    21.10.2014.
    Beiträge
    47

    Standard Pagination Template überschreiben

    Seit Contao 5.7 stehe ich auf dem Schlauch was das Überschreiben des pagination templates angeht.

    Bisher hatte ich /templates/themeordner/pagination.html5

    Dieses greift nur im Debug Modus.

    Dann habe ich versucht ein twig Template zu erstellen und es komplett überschrieben:

    /templates/themeordner/pagination.html.twig
    Das greift leider auch nicht. Daraufhin habe ich das alte html5 template gelöscht, was leider auch keine Änderung brachte.

    Das Template Studio hat die Reihenfolge eigentlich richtig angezeigt, wie in der Doku beschrieben.

    Mache ich hier einen Fehler, oder bin ich auf einen Bug gestoßen?

    Hier der Code meines custom twig templates:

    Code:
    {% trans_default_domain 'contao_default' %}
    <!-- indexer::stop -->
    <nav class="pagination my-5 w-100 block" aria-label="{{ 'MSC.pagination'|trans }}">
        <p>{{ total }}</p>
    
        <ul class="d-flex p-0 w-100 align-items-center justify-content-center">
            {% if hasFirst %}
                <li class="first"><a href="{{ first.href }}" class="first" title="{{ first.title }}">{{ first.link }}</a></li>
            {% endif %}
    
            {% if hasPrevious %}
                <li class="previous"><a href="{{ previous.href }}" class="previous" title="{{ previous.title }}">{{ previous.link }}</a></li>
            {% endif %}
    
            {% for page in pages %}
                {% if page.href is null %}
                    <li><strong class="active">{{ page.page }}</strong></li>
                {% else %}
                    <li><a href="{{ page.href }}" class="link" title="{{ page.title }}">{{ page.page }}</a></li>
                {% endif %}
            {% endfor %}
    
            {% if hasNext %}
                <li class="next"><a href="{{ next.href }}" class="next" title="{{ next.title }}">{{ next.link }}</a></li>
            {% endif %}
    
            {% if hasLast %}
                <li class="last"><a href="{{ last.href }}" class="last" title="{{ last.title }}">{{ last.link }}</a></li>
            {% endif %}
        </ul>
    </nav>
    <!-- indexer::continue -->
    Danke, mit Twig bin ich leider noch eher per "Sie".

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    38.741
    Partner-ID
    10107

    Standard

    Seit Contao 5.7 gibt es eine neue Pagination. Was genau möchtest du denn anpassen?
    » sponsor me via GitHub or Revolut

  3. #3
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    3.079
    Partner-ID
    werbepanorama
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich habe ein angepasstes Template unter /templates/component/_pagination.html.twig platziert. Wobei ich es komplett überschrieben habe.
    Grüsse
    Bernhard


  4. #4
    Contao-Nutzer
    Registriert seit
    21.10.2014.
    Beiträge
    47

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Seit Contao 5.7 gibt es eine neue Pagination. Was genau möchtest du denn anpassen?
    Im Prinzip nur die paar Bootstrap Klassen:

    Code:
    <nav class="pagination my-5 w-100 block" aria-label="{{ 'MSC.pagination'|trans }}">
    
     <ul class="d-flex p-0 w-100 align-items-center justify-content-center">

  5. #5
    Contao-Nutzer
    Registriert seit
    21.10.2014.
    Beiträge
    47

    Standard

    Zitat Zitat von derRenner Beitrag anzeigen
    Ich habe ein angepasstes Template unter /templates/component/_pagination.html.twig platziert. Wobei ich es komplett überschrieben habe.
    Super, danke! Das hat geklappt!

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    38.741
    Partner-ID
    10107

    Standard

    Zitat Zitat von androsch Beitrag anzeigen
    Im Prinzip nur die paar Bootstrap Klassen:

    Code:
    <nav class="pagination my-5 w-100 block" aria-label="{{ 'MSC.pagination'|trans }}">
    
     <ul class="d-flex p-0 w-100 align-items-center justify-content-center">
    Und nur für ein bestimmtes Modul oder Inhaltselement oder für alle Paginations?
    » sponsor me via GitHub or Revolut

  7. #7
    Contao-Nutzer
    Registriert seit
    21.10.2014.
    Beiträge
    47

    Standard

    In dem Fall ging es um die mod_neswlist

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    38.741
    Partner-ID
    10107

    Standard

    Seit Contao 5.7.3 könntest du die CSS Klassen bspw. so hinzufügen:

    PHP-Code:
    {# templates/mod_newslist.html.twig #}
    {% extends '@Contao/mod_newslist' %}
    {% use 
    '@Contao/component/_pagination.html.twig' %}

    {% 
    block pagination_component %}
        {% 
    set pagination_attributes attrs()
            .
    addClass(['my-5''w-100'])
            .
    mergeWith(pagination_attributes|default)
        %}
        {{ 
    parent() }}
    {% 
    endblock %}

    {% 
    block content %}
        {% if 
    not articles %}
            <
    class="empty">{{ empty }}</p>
        {% else %}
            {{ 
    articles|join|raw }}

            {% if 
    pagination.object|default %}
                {% 
    with {paginationpagination.object} %}{{ block('pagination_component') }}{% endwith %}
            {% endif %}
        {% endif %}
    {% 
    endblock %} 
    Beim <ul> sieht es aktuell aber schlecht aus, evt. kommt das aber noch in der nächsten Contao Bugfix Version: https://github.com/contao/contao/pull/9674
    Geändert von Spooky (20.03.2026 um 12:38 Uhr)
    » sponsor me via GitHub or Revolut

  9. #9
    Contao-Nutzer
    Registriert seit
    21.10.2014.
    Beiträge
    47

    Standard

    Danke!

    Mit dem Überschreiben der _pagination.html.twig komm ich zum Glück auch ans Ziel.

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    38.741
    Partner-ID
    10107

    Standard

    Ab Contao 5.7.4 wird auch folgendes funktionieren:
    PHP-Code:
    {# templates/mod_newslist.html.twig #}
    {% extends '@Contao/mod_newslist' %}
    {% use 
    '@Contao/component/_pagination.html.twig' %}

    {% 
    block pagination_component %}
        {% 
    set pagination_attributes attrs()
            .
    addClass(['my-5''w-100'])
            .
    mergeWith(pagination_attributes|default)
        %}

        {% 
    set list_attributes attrs()
            .
    addClass(['d-flex''p-0''w-100''align-items-center''justify-content-center'])
            .
    mergeWith(list_attributes|default)
        %}

        {{ 
    parent() }}
    {% 
    endblock %}

    {% 
    block content %}
        {% if 
    not articles %}
            <
    class="empty">{{ empty }}</p>
        {% else %}
            {{ 
    articles|join|raw }}

            {% if 
    pagination.object|default %}
                {% 
    with {paginationpagination.object} %}{{ block('pagination_component') }}{% endwith %}
            {% endif %}
        {% endif %}
    {% 
    endblock %} 
    » sponsor me via GitHub or Revolut

  11. #11
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    2.113
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ab Contao 5.7.4 wird auch folgendes funktionieren:
    PHP-Code:
    {# templates/mod_newslist.html.twig #}
    {% extends '@Contao/mod_newslist' %}
    {% use 
    '@Contao/component/_pagination.html.twig' %}

    {% 
    block pagination_component %}
        {% 
    set pagination_attributes attrs()
            .
    addClass(['my-5''w-100'])
            .
    mergeWith(pagination_attributes|default)
        %}

        {% 
    set list_attributes attrs()
            .
    addClass(['d-flex''p-0''w-100''align-items-center''justify-content-center'])
            .
    mergeWith(list_attributes|default)
        %}

        {{ 
    parent() }}
    {% 
    endblock %}

    {% 
    block content %}
        {% if 
    not articles %}
            <
    class="empty">{{ empty }}</p>
        {% else %}
            {{ 
    articles|join|raw }}

            {% if 
    pagination.object|default %}
                {% 
    with {paginationpagination.object} %}{{ block('pagination_component') }}{% endwith %}
            {% endif %}
        {% endif %}
    {% 
    endblock %} 
    And I love it

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •