Stránka do proměné($string = Presenter:action)
- salazzar
- Člen | 18
Měl jsem v plánu vyrenderovat Admin:actionNotEditable do proměné a
poslat ji v email avšak zjistil jsem že neumím odchytit výstup akce
presenteru.
Tak mě napadlo že šablonu té akce zavolám přes
$theme = new FileTemplate('notEditable.latte');
ale to by znamenalo na psání řídící logiky znovu.
Dá se výše uvedené nějak jednoduše realizovat ?
- thunderbuff
- Člen | 164
<?php
$template = new FileTemplate('notEditable.latte');
$template->setTranslator($this->translator);
$template->registerFilter(new Engine);
$template->registerHelperLoader('\Nette\Templating\Helpers::loader');
$template->orderid = 123;
$mail = new Message();
$mail->setFrom('...')
->addTo('...')
->setSubject('...')
->setHtmlBody($template);
$mailer->send($mail);
?>
Tohle musí fungovat. Nezapomínáš tu šablonu plnit daty?
salazzar napsal(a):
díky za rychlou reakci, ale nevím jak Vám mě ty odkazy vrátí prázdnou stránku…
Pokud šablonu nastavuješ jen tomu mailu, tak se přece na výstup nevykreslí.
// Edit
Pokud chceš do proměnné zachytit opravdový výstup stránky, tak by ti
pomohl kód níže, ale je to docela prasárna a server posílá další request
sám na sebe.
<?php
$string = file_get_contents($presenter->link('//Presenter:action'));
?>
Editoval thunderbuff (17. 5. 2013 14:45)
- mildabre
- Člen | 62
V Nette je ideální šablonovat pomocí FileTemplate šablonami ze souboru
.latte. Ta proměnná by měla jedinou výhodu, kdyby byla šablona tak
jednoduchá, že by se nevyplatilo zakládat další soubor. Potom by se kód
šablony mohl zapsat rovnou do kódu aplikace a nastavit v objektu Template
->setSource(…kód…).
Přístup pomocí proměnné je zastaralá techika, v Nette je třeba jít
„Nette way“.
- Vojtěch Dobeš
- Gold Partner | 1316
mildabre Omlouvám se, ale tomuto vůbec nerozumím. Nejde
o to, co je Nette Way, ale co se kdy hodí více použít.
->setSource()
nemá odpostatnění, cituji:
kdyby byla šablona tak jednoduchá, že by se nevyplatilo zakládat další soubor
Ale například když je šablona uložená v databázi.