Blöcke in child theme überschreiben geht nicht (v7.1)

Hallo,

musste einen Block im child theme überschreiben. Die Pfade zu twig stimmen, name der twig datei auch. Ging nicht.
Wenn ich aber die gesamte twig aus source parent theme in child theme platziert habe, dann hats funktionniert.
Aber das ist ein schmutziger workaround.
Weiss jemand, wie man NUR einen Block überschreibt?

Danke.

{% extends '@apex/layout/header.html.twig' %}
{% block layout_header_logo %}
    SOME EXTENDED TEMPLATING
    {% set slogoImg = oViewConf.getViewThemeParam('sLogoFile') %}
    {% set sLogoWidth = oViewConf.getViewThemeParam('sLogoWidth') %}
    {% set sLogoHeight = oViewConf.getViewThemeParam('sLogoHeight') %}
    <a href="{{ oViewConf.getHomeLink()|raw }}"
       title="{{ oxcmp_shop.oxshops__oxname.value }}" class="logo-link d-flex">TITLE
        {% if slogoImg %}
            <img src="{{ oViewConf.getImageUrl(slogoImg)|raw }}"
                 alt="{{ oxcmp_shop.oxshops__oxname.value }}" width="{{ sLogoWidth }}"
                 height="{{ sLogoHeight }}" class="logo-img">
        {% else %}
            <span class="h1">{{ oxcmp_shop.oxshops__oxname.value }}</span>
        {% endif %}
    </a>
{% endblock %}

Sowas geht zB nicht.... wie extende ich korrekt?

Hast Du 's schon mal probiert, die Theme-ID “@apex/” wegzulassen? Also nur

{% extends 'layout/header.html.twig' %}

zu verwenden? Für das Standard-Frontend-Theme funktioniert das. Hatte nur noch keinen Fall mit einem Child-Theme…

Hallo Daniel. Danke, geht aber auch nicht.

Als Twig Anwender der ersten Stunde (seit der 6.2er Serie) hatte ich bei einem Update von der 6.5er auf die 7er Serie eine ähnliche Problematik beim GDPR Opt-In Modul gehabt.

Mein Erfahrungsbericht vom Update auf OXID 7: Update-Revolution oder mühsamer Umstieg?

Beim Child-Theme ist es wichtig anstatt apex den Verzeichnisnamen default zu verwenden, damit die Überladung auch für das eigene Child-Theme funktioniert.

Dies hatte OXID eSales zu Beginn auch nicht auf dem Schirm im eigenen Modul… Verzeichnis wurde umbenannt gdpr-optin-module/views/twig/extensions/themes at b-7.2.x · OXID-eSales/gdpr-optin-module · GitHub

Steht aber mittlerweile in der Dokumentation Using Twig in module templates — OXID eShop developer documentation 7.1 documentation

Um nur einen einzelnen Block zu überschreiben, würde dann vermutlich die Wahl auf ein Custom Modul für die Theme Änderung fallen.

Ansonsten könntest gerne berichten, wenn es Dir gelingt einen einzelnen Block über das Child-Theme zu überschreiben.

Schönen Abend gewünscht :slight_smile:

1 Like

Hallo indianer3c,

vielen Dank für die ausführliche Antwort.

Die Entscheidung nach viel Herumprobieren war module zu nutzen, zum Überschreiben von twig Blöcken. Tut einwandfrei. Mit theme - erweiterung nicht und man weiss nicht wie das gehen soll. Daher sind wir erstmal den Weg mit Modulen eingeschlagen.

lg, Alex

1 Like