Bonjour,

Je cherche à faire fonctionner la fonction template_from_string de Twig.

Je précise que j'utilise Twig sans Symfony.

Voilà ce que j'ai fait :

La fonction qui lance Twig et fait un render :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
<?php
 
require_once '../vendor/autoload.php';
 
$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader);
$twig->addExtension(new Twig_Extension_StringLoader());
 
echo $twig->render('templateTypeImpression.html.twig', array('fieldType' => 'Select', 'fieldName'  => 'test'));
?>
Mes templates :
templateTypeImpression.html.twig

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<div style="float:left;">
    <label>{{ fieldName }}</label>
</div>
{% include template_from_string('template{{ fieldType }}.html.twig') %}
{#{% include 'templateSelect.html.twig' %}#}
templateSelect.html.twig

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<select name="{{ fieldName }}">
</select>
Et quand je render mon templateTypeImpression j'obtiens :
testtemplateSelect.html.twig

Pas moyen de lui faire comprendre que je veux inclure dynamiquement le templateSelect.html.twig parce que ma variable fieldType est égale à Select ...

Sinon quand je fais un include directement de templateSelect.html.twig comme j'ai commenté, il le reconnaît

Si quelqu'un a une idée, merci !

Grokh