Auch auf die Gefahr hin, dass man den Betreff dieses Threads für absurd halten mag, wage ich trotzdem die Frage, ob es für die base.html.twig ein {{parent()}} gibt?
Der Punkt ist der, dass ich den kompletten HTML Output also von [html] bis [/html] von einem bestimmten GET Parameter abhängig machen muss. Ich müsste dafür quasi die komplette basic.html.twig überschreiben können, um im Falle dessen einen alternativen HTML Output ausgeben zu können. Warum ich das so und nicht anders brauche, hängt mit Edge Side Includes (ESI) zusammen.
parent() bezieht sich meinem Wissen nach auf Blöcke, nicht auf gesamte Dateien.
Die base.html.twig ist in Shopware die root-Datei.
In deinem Fall, in die base.html.twig einfach per Plugin überschreiben, eine if-Abfrage einbauen und in einem von beiden Parts die ursprüngliche base.html.twig einlesen. Falls das nicht geht, dann einfach die base.html.twig kopieren und diese einlesen.
Auch wenn die Begrifflichkeit womöglich falsch verwendet wurde, betrifft es im konkreten Fall die gesamte base.html.twig. Wenn ich versuche die base.html.twig zu überschreiben, dann ist das in etwa also würde ich den Ast absägen wollen auf dem ich sitze. Deswegen meine Ausdrucksweise, dass ich die von mir benötigte GET Abfrage von parent setzen müsste. Ich versuch das mal an Hand von Code darzustellen:
{% if app.request.get('abfrage') == false %}
Code der base.html.twig
{% endif %}
{% block esi %}
{% if app.request.get('abfrage') == 'buynow' %}
{{ sw_csrf('frontend.checkout.line-item.add') }}
{% endif %}
{% if app.request.get('abfrage') == 'account' %}
{% sw_include '@Storefront/storefront/layout/header/account-menu.html.twig' %}
{% endif %}
{% endblock %}
Kopiere dir die base.html.twig und benenne sie um. binde diese dann in deinen if block ein.
Jetzt musst Du mir auf die Sprünge helfen, wobei es bereits bei „kopiere die base.html.twig“ aussetzt. Klar kann ich die kopieren und umbenennen, aber woher weiß Twig, dass es die kopierte und umbenannte root Datei verwenden soll?!
AAH! Jetzt hats Click gemacht und weiß jetzt was und wie Du das meinst. Okay, lass mich das mal ausprobieren!
Ich habs jetzt ganz anders gelöst und war am Ende dann doch so einfach. Ich habe tatsächlich die Original base.html.twig kopiert, allerdings nicht umbenannt und einfach die extends Anweisung weggelassen. Und siehe da, es funzt wie benötigt. Belässt man die extends Anweisung und benennt man die base.html.twig um, passiert goar nix. Belässt man die extends Anweisung hagelt es Fehler bis zum Abwinken.