Filter ‚nazevfiltru‘ is not defined – v továrničce a vložené šablonce

Alsatian
Člen | 164
+
0
-

V config.neon jsem si zaregistroval načítání latte filtrů viz globální registrace filtrů

services:
	latte.latteFactory:
        setup:
            - addFilter(NULL, [App\Filters, loader])

V souboru App\Filters\Filters.php mám definovaný vlastní filtr.
Ten lze vyvolat v šabloně, paráda.

Mám ale továrničku, generující e-mail, jehož obsah je načítán z připravené šablonky.
V té chci filtr použít a ouha, „Filter nazevfiltru is not defined“

$mail->setSubject('Text předmětu')
	->setHtmlBody($latte->renderToString(__DIR__ . '/../../presenters/templates/components/nazevSablonky.latte', $params));

Je vůbec možné takto vlastní filtr použít? Moc děkuji :)

Editoval Alsatian (5. 10. 2018 17:03)

Ondřej Kubíček
Člen | 494
+
0
-

a $latte v tom emailu vytváříš jak? pokud si tam předáváš LatteFactory, tak si myslím, že by tam ty filtry měly být

Alsatian
Člen | 164
+
0
-

@OndřejKubíček takto, což je asi špatně :) Nevím jak na to :)

$latte = new \Latte\Engine();
Alsatian
Člen | 164
+
+3
-

@OndřejKubíček povedlo se! Díky

v továrničce jsem si předal kontruktorem Nette\Bridges\ApplicationLatte\ILatteFactory a vytvořil latte s jeho pomocí.

$latte = $this->latteFactory->create();
Ondřej Kubíček
Člen | 494
+
0
-

ano, přesně tak to mělo být
ta nová instance samozřejmě nemohla znát ten tvůj custom filtr