Twig Namespaces, Twig Path, twig.yaml
Hi,
ich möchte innerhalb einer Erweiterung ein Twig-Template rendern, doch das Template wird nicht gefunden.
Meine twig.yaml sieht so aus:
Code:
twig:
debug: '%kernel.debug%'
file_name_pattern: '*.twig'
default: '%kernel.project_dir%/src/Resources/contao/templates'
paths:
'BitsIsoProductfeed': 'BitsIsoProductfeed'
Der Pfad zu meinem Template ist "src/Resources/contao/templates/BitsIsoProductfeed"
Der Code innerhalb der Klasse sieht so aus:
Code:
$html = $twig->render('@BitsIsoProductfeed/iso_productfeed_panel.html.twig', $templateData);
In der services.yaml hab ich das hier stehen:
Code:
Bits\IsoProductfeed\Contao\DC_IsoProductfeed:
arguments:
$twig: '@twig'
Tippfehler habe ich keine. Ich weiß nicht warum das Template nicht gefunden wird. Vielleicht versteh ich auch die Logik in der twig.yaml nicht:eek:
Ich habe jetzt gemerkt das meine twig.yaml nicht geladen wird. Und der Kernel.php vielleicht auch nicht:eek:
Habe das im Kernel.php ergänzt und bekomme keine Ausgabe:
Code:
protected function configureContainer(ContainerConfigurator $container): void
{
$container->import('../config/{packages}/*.yaml');
$container->import('../config/{packages}/'.$this->environment.'/*.yaml');
// Registriere deinen benutzerdefinierten Pfad
// $container->import('Resources/config/packages/twig.yaml');
if (file_exists('../Resources/contao/config/twig.yaml')) {
echo "twig.yaml exists";
} else {
echo "twig.yaml not found";
}
exit;
}
Habe jetzt das Problem gelöst und zwar geht es so:
Code:
$html = $twig->render('@Contao/iso_productfeed_panel.html.twig', $templateData);