překlad proměných v nette 2 ve widgetu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
onny
Člen | 67
+
0
-

Dobrý večer,
používám v Nette 2 klasickou šablonu pro odeslání emailu, je to ve widgetu (controlu) při akci.

$template = new FileTemplate;
$template->registerFilter(new LatteFilter);
$template->registerFilter('Nette\Templates\CurlyBracketsFilter::invoke');


$template->setFile('app/templates/Emaily/uvodni.phtml');

template se přiřadí i vtsikne do emailu, jen se nepřeloží žádné proměné ({$moje}) ani {link . . . Počítám, že budou nějak špatně registrované filtry, nedokázal jsem najít, jak jinak by to mělo být, chybu to nevyhazuje žádnou.

Děkuji

onny
Člen | 67
+
0
-

To jsem asi jedinej, komu to nejde :) :(

newPOPE
Člen | 648
+
0
-

Pred par dnami som mal ten isty problem mail prisiel ale s {…} :-D ale po edite sablony to uz islo.

sodae
Nette Evangelist | 250
+
0
-

LatteFilter je pouze filter, tedy přeloží makra do php kodu.

Co se týče link, zde je potřeba registrovat Presenter a používat plink.

K proměnným, pokud chceš je použít proměnou taky ji musíš nastavit pro tu šablonu.

a nevím co tam dělá:
$template->registerFilter('Nette\Templates\CurlyBracketsFilter::invoke');

takže tvůj kod by měl vypadat asi takto:

$template = new FileTemplate('.....phtml/.latte');
$template->registerFilter(new LatteFilter);
$template->presenter = $presenter;

$template->promena = 'abc';
onny
Člen | 67
+
0
-

Zkusil jsem ten plink, a výsledkem je „Call to a member function link() on a non-object“ – volám to ve widgetu a přesně tak, jak jsi poslal. Jinak překlad proměných už jede super, mám ještě možnost, jak to udělat jinak aby jel link nebo alespoň plink?

Díky za Tvůj čas!

sodae
Nette Evangelist | 250
+
0
-

proto tam registruji presenter, viz kod

onny
Člen | 67
+
0
-

Mám to tam, nepomáhá to.

Filip Procházka
Moderator | 4668
+
0
-

V controlu? zkus tohle:

$template = clone $this->createTemplate(); // $this instanceof Nette\Application\Control
$template->setFile('app/templates/Emaily/uvodni.phtml');

$mail->setHtmlBody($template);
onny
Člen | 67
+
0
-

Jo, to je boží, funguje!

Moc děkuji všem.