Latte 3: {link} v šabloně

sukovf
Člen | 1
+
0
-

Zdravím,

prosím pěkně, jak můžu ve službě vyrenderovat latte template do stringu a v dané templatě použít {link} makro?

V latte 2 stačilo něco jako:

$latte = $this->latteFactory->create();
$latte->addProvider('uiControl', $this->linkGenerator);
$latte->renderToString(...);

V latte 3 už toto nefunguje a dostávám exception říkající Unexpected tag {link}...

V dokumentaci jsem narazil na radu používat nově toto:

$latte->addExtension(new Nette\Bridges\ApplicationLatte\UIExtension($control));

Nemám však k dispozici žádný $control. Přesněji, netuším, kde to vzít. Mám si do té služby passnout presenter?

Předem díky za rady :-)

Editoval sukovf (2. 10. 2022 15:19)

Marek Bartoš
Nette Blogger | 1264
+
+1
-

On tohle byl vždycky spíš workaround, než design choice. Pořád se to však dá obejít, jen trochu jinak

$latte->addExtension(new Nette\Bridges\ApplicationLatte\UIExtension(null));
$latte->addProvider('uiControl', $this->linkGenerator);