2012-10-22 9 views
5

E 'possibile includere un modello con {% include %} che è al di fuori dal percorso del modello definito con:Twig- Includi Template da altre directory

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

sto chiedendo perché questa linea non funziona:

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

risposta

3

No, non è possibile utilizzare Twig_Loader_Filesystem, perché rifiuta esplicitamente nomi dei modelli che hanno .. all'interno. Questo può essere verificato nella definizione della funzione validateName($name) all'interno del file Twig/lib/Twig/Loader/Filesystem.php.

L'unica soluzione pulita che posso pensare, se è necessario accedere a un modello all'esterno del percorso, è create your own loader.

Una soluzione che funziona, è la definizione di un collegamento simbolico all'interno della cartella effettivamente registrata con Twig_Loader_Filesystem, che punta alla directory a cui si desidera accedere. Sii attento con con questo metodo, punta il link a un posto sicuro.

+0

È l'/ directory/app al di fuori del campo di applicazione 'include' ? –