Ako vytvoriť template pomocou funkcie createTemplate()
- lime
- Člen | 55
Potrebujem to do e-mailu, ktorý odosielam, môj pokus:
$template = $this->createTemplate();
$template->render('email.latte');
- tuna na stránke v dokumentácii v časti šablony úplne dole som našiel toto:
$template = $this->createTemplate();
$template->setFile('template.latte');
- no nefunguje ani to, dokonca $template nepozná ani metodu setFile()..
- lime
- Člen | 55
matej21 napsal(a):
dej tam absolutni cestu
Napísal by si prosím ako?:) vdaka
//Edit: pri tých mailoch je popísané ako to vytvoriť cez new
Nette\Templating\FileTemplate..; ale ja by som chcel vedieť, ako to vytvoriť
v presentery cez metodu createTemplate()…(ako som napísal v úvode)
Editoval lime (17. 12. 2013 22:57)
- saimons
- Člen | 293
Dobre si je do index.php udelat konstantu napr MAIL_DIR, tak to delam ja. Pak das jen $template->render(MAIL_DIR . ‚/email.latte‘);
// absolute filesystem path to this web root
define('WWW_DIR', __DIR__);
// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/app');
// absolute filesystem path to the mail templates
define('MAIL_DIR', APP_DIR . '/mails');
Editoval saimons (17. 12. 2013 22:58)
- Šaman
- Člen | 2666
Anebo použij konstantu __DIR__ pro aktuální adresář. Tak to většinou používám já, pokud mám komponenty, nebo modely, které posílají emaily. Odesílání emailu přímo z presenteru, tak jak to mám v ukázce nebývá běžné, ale funguje to taky. Šablona je v tomto případě vedle šablony layoutu.
- lime
- Člen | 55
saimonsov kód mi nešiel, ale šamanov áno, teda tie adresy myslím:
$template = new Nette\Templating\FileTemplate(__DIR__. '/../templates/Mail/email.latte');
Takto som to spravil, a chcel som to cez to createTemplate() práve kôli
tomu, že v šablóne potom môžem generovať odkazy lebo cez to new
Nette\Templating… mi tam odkazy nejdú dať, cez createTemplate() áno.
Odesílání emailu přímo z presenteru, tak jak to mám v ukázce
nebývá běžné → tak dá sa to nejako ináč aj s odkazmi?
- David Matějka
- Moderator | 6445
$template = $this->createTemplate();
$template->setFile(__DIR__. '/../templates/Mail/email.latte');
- lime
- Člen | 55
matej21 napsal(a):
$template = $this->createTemplate(); $template->setFile(__DIR__. '/../templates/Mail/email.latte');
No jasné, už to napísal šaman, ale napísal, že to nieje bežné ale budiš…a ešte otázka ohľadom tých odkazov, vie mi niekto napísať ako ich mám písať, pretože klasicky mi tam vypíše „bludy“
- David Matějka
- Moderator | 6445
ok, neprecet jsem si tvuj prispevek do konce :)
pokud chces v mailu pouzivat linky, je createTemplate() na presenteru bohuzel jediny rozumny reseni (jde to teda i jinak, ale je to komplikovanejsi – ja mam treba vytvoreny sluzby na vytvareni sablon, na vytvareni linku atd. ktery se obejdou bez presenteru)..
a ešte otázka ohľadom tých odkazov, vie mi niekto napísať ako ich mám písať, pretože klasicky mi tam vypíše „bludy“
nechapu, muzes trochu specifikovat?
- lime
- Člen | 55
matej21 napsal(a):
ok, neprecet jsem si tvuj prispevek do konce :)
pokud chces v mailu pouzivat linky, je createTemplate() na presenteru bohuzel jediny rozumny reseni (jde to teda i jinak, ale je to komplikovanejsi – ja mam treba vytvoreny sluzby na vytvareni sablon, na vytvareni linku atd. ktery se obejdou bez presenteru)..
a ešte otázka ohľadom tých odkazov, vie mi niekto napísať ako ich mám písať, pretože klasicky mi tam vypíše „bludy“
nechapu, muzes trochu specifikovat?
ok, neprecet jsem si tvuj prispevek do konce :)
V pohode :)
Špecifikovať..keď som dal do email.latte „klasický“ odkaz: <a n:href=„Homepage:default“>odkaz</a> tak by mi tam malo vypísať iba ten odkaz, ale vypíše mi tam aj všetky linky, ktoré mám v @layout.latte, ale pritom žiaden (ani „odkaz“) nefunguje, viem, že tam treba dať zase absolútnu adresu, skúšal som aj n:href=„__DIR__. ‚/../templates/Homepate/default.latte‘“ ale to isté..
- David Matějka
- Moderator | 6445
aha, asi to extenduje tu sablonu layoutem presenteru. zkus dat na zacatek souboru
{layout none}
a v n:href absolutni cesta k souboru co delat :)
- jiri.pudil
- Nette Blogger | 1032
V mailu musíš samozřejmě odkazovat na absolutní URL:
<a n:href="//Homepage:default">link</a>