phpBB 3.3.9: Fatal error ... Looks like you try to load a template outside ... (INCLUDEJS / INCLUDECSS)
Verfasst: 30.11.2022 18:09
Basiert auf einem Beitrag von Marc auf phpBB.com: [Info] Changes to twig behavior on loading files in 3.3.9
Problem und Lösung
Bei phpBB 3.3.9 wurde u.a. auch Twig von Version 2.15.1 auf 2.15.3 aktualisiert und bei Twig gab es eine kleine Änderung die bei manchen (meist älteren) Erweiterungen eine Fehlermeldung ähnlich wie die folgende verursachen kann:
Das hängt mit strengeren Regeln bei der Handhabung von Dateinamen/Pfaden der Dateien zusammen, die mit Twig geladen werden dürfen. Der Fehler tritt nun auf, wenn bei
Beispiele bezüglich ungültiger Pfadangaben:
Twig:
Alte phpBB Template Syntax:
Das Problem kann einfach behoben werden, indem bei
Beispiele bezüglich Lösung:
Twig:
Alte phpBB Template Syntax:
Die nachfolgenden Informationen dienen nur der Beleuchtung der Ursache und sind für die Problemlösung nicht relevant.
Hintergrund
Die betreffende Fehlermeldung existiert prinzipiell schon lange, präzise seit phpBB 3.1.0 (Twig 1.13.2). Die zugehörige Prüfung hat sich jedoch im Laufe der Jahre mehrfach geändert und blieb bei phpBB 3.3 lange Zeit unverändert bis einschliesslich phpBB 3.3.8 (Twig 2.15.1). Bei phpBB 3.3.9 (Twig 2.15.3) gab es jedoch eine winzige Änderung in folgender Datei, die in Kombination mit relativen Pfadangaben dann zur besagten Fehlermeldung führt:
Twig 2.15.1:
Twig 2.15.3:
Es handelt sich also um eine unbemerkte Änderung bei Twig, nicht um eine gewollte Änderung bei phpBB 3.3.9.
Problem und Lösung
Bei phpBB 3.3.9 wurde u.a. auch Twig von Version 2.15.1 auf 2.15.3 aktualisiert und bei Twig gab es eine kleine Änderung die bei manchen (meist älteren) Erweiterungen eine Fehlermeldung ähnlich wie die folgende verursachen kann:
Code: Alles auswählen
Fatal error: Uncaught Twig\Error\LoaderError: Looks like you try to load a template outside configured directories (../theme/some_file.css) in "@some_extension/some_other_file.html"
INCLUDEJS
und INCLUDECSS
relative Pfadangaben verwendet wurden.Beispiele bezüglich ungültiger Pfadangaben:
Twig:
Code: Alles auswählen
{% INCLUDECSS '../theme/foobar.css' %}
Code: Alles auswählen
<!-- INCLUDECSS ../theme/foobar.css -->
INCLUDEJS
und INCLUDECSS
anstelle von relativen Pfadangaben das Erweiterungs-Präfix @autorname_extname
verwendet wird.Beispiele bezüglich Lösung:
Twig:
Code: Alles auswählen
{% INCLUDECSS '@autorname_extname/foobar.css' %}
Code: Alles auswählen
<!-- INCLUDECSS @autorname_extname/foobar.css -->
Hintergrund
Die betreffende Fehlermeldung existiert prinzipiell schon lange, präzise seit phpBB 3.1.0 (Twig 1.13.2). Die zugehörige Prüfung hat sich jedoch im Laufe der Jahre mehrfach geändert und blieb bei phpBB 3.3 lange Zeit unverändert bis einschliesslich phpBB 3.3.8 (Twig 2.15.1). Bei phpBB 3.3.9 (Twig 2.15.3) gab es jedoch eine winzige Änderung in folgender Datei, die in Kombination mit relativen Pfadangaben dann zur besagten Fehlermeldung führt:
vendor\twig\twig\src\Loader\FilesystemLoader.php
(Zeilen 209-211)Twig 2.15.1:
Code: Alles auswählen
list($namespace, $shortname) = $this->parseName($name);
$this->validateName($shortname);
Code: Alles auswählen
$this->validateName($name);
list($namespace, $shortname) = $this->parseName($name);