2012-10-22 6 views
5

Ist es möglich, eine Vorlage mit {% include %} einschließen, die außerhalb von dem Vorlagenpfad mit definiertem ist:Twig- Vorlage Fügen von anderem Verzeichnis

$template = $twig->loadTemplate('example.tpl'); 

Ich frage, weil diese Linie nicht funktioniert:

{% include '.../example/navbar_left.tpl' %} 

Antwort

3

Nein, es ist nicht möglich Twig_Loader_Filesystem verwenden, weil es Vorlagennamen explizit die .. lehnt innen haben. Dies kann in der Definition der Funktion validateName($name) innerhalb der Datei Twig/lib/Twig/Loader/Filesystem.php verifiziert werden.

Die einzige saubere Lösung, die ich mir vorstellen kann, wenn Sie auf eine Vorlage außerhalb des Pfades zugreifen müssen, ist create your own loader.

Eine Problemumgehung, die funktioniert, definiert einen symbolischen Link innerhalb des Ordners, der tatsächlich unter Twig_Loader_Filesystem registriert ist und auf das Verzeichnis zeigt, auf das Sie zugreifen möchten. Be vorsichtig mit dieser Methode, zeigen Sie den Link an einen sicheren Ort.

+0

den/app/Verzeichnis außerhalb des Anwendungsbereichs der 'include' Ist ? –

Verwandte Themen