Template file extenden, die selber auch extendet

Ich erstelle ein eigenes Theme. Hier ändere ich z.B. in der Datei Storefront/storefront/component/account/login.html.twig einen Block wie folgt:

{% sw_extends '@Storefront/storefront/component/account/login.html.twig' %}

{% block component_account_login_header %}
    FOO
{% endblock%}

Soweit so gut, der Text in dem Titel-Element ist jetzt wie zu erwarten FOO.

Jetzt möchte ich die storefront/page/product-detail/review/review-login.html.twig erweitern, welche wiederum o.g. Datei erweitert:

{% sw_extends '@MyTheme/storefront/component/account/login.html.twig' %}

{% block component_account_login_form_description %}
    BAR
{% endblock%}

Im Review-Login-Block wird jetzt zwar als Description BAR angezeit, aber als Titel nicht mehr FOO. Obwohl ich ja explizit den Namespace des Plugins/Themes angebe: @MyTheme/...

Eigentlich sollte das doch kein Problem sein, was mache ich falsch?

1 „Gefällt mir“

da wo das Template eingebunden wird, muss ich logischerweise auch meinen Namespace nehmen:
{% sw_include '@MyTheme/storefront/page/product-detail/review/review-login.html.twig' %}
damit geht es dann natürlich (statt @Storefront)

Ach, dieses Thema ist echt nervig gerade. Im Prinzip will ich die comnponent/account/login.html.twig verändern und auch die page/product-detail/review/review-login.html.twig anpassen, die die login.html.twig ja nur extended.

  1. Frage: mit welchem Namespace muss ich die review-login.html.twig includen–@Storefront oder @MyTheme?

  2. Frage: Wie kann ich in der review-login.html.twig die login.html.twig erweitern? Folgendes funktioniert nicht: {% sw_extends '@Storefront/storefront/component/account/login.html.twig' %}, egal mit welchem Namespace.

  3. Frage: Wozu gibt es die ganzen Review-Files doppelt? In storefront/component/review und in storefront/page/product-detail/review. Was ist da die Idee dahinter?

Leider schaffe ich es nur das Elternelement zu Erweitern: {% sw_extends '@Storefront/storefront/page/product-detail/review/review-login.html.twig' %}. Das führt aber nicht zum gewünschten Ergebniss, weil ich ja als parent-block den aus login.html.twig haben will.