Použití bloků v šabloně pro email – jak na to?

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

Snažím se udělat organizovanou šablonu pro email, ale nedaří se mi to – pokud používám jen makra jako {$proměnná}, {plink}, atd., je to v pořádku, ale ve chvíli, kdy definuji nějaký blok, tak se mi includuje @layout pro presenter, ve kterém email vytvářím – a to samozřejmě skončí s chybou na neexistujících proměnných.

Email vytvářím takto:

$template = $this->createTemplate();
$template->setFile(__DIR__ .'/../templates/Email/email.latte');
$template->registerFilter(new Nette\Latte\Engine);
$template->params = $params;
$template->subject = $subject;
$template->pageUrl = $this->pageUrl;
$mail = new Nette\Mail\Message;
$mailer = new Nette\Mail\SmtpMailer(array(
	    'host' => $this->context->parameters['email']['smtp'],
	    'username' => $this->context->parameters['email']['username'],
	    'password' => $this->context->parameters['email']['password'],
	    'secure' => $this->context->parameters['email']['secure'],
	));
$mail->setFrom($this->context->parameters['email']['from'])
	->addTo($to)
	->setHtmlBody($template);
$mail->setMailer($mailer);
$mail->send();

Aktuální šablona:

{block mail}
	{if $neco}
		Obsah bloku
	{else}
		Obsah 2
	{/if}
{/block}
<html>
    <head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>{$subject}</title>

    </head>
    <body>

{*include #mail*} {* nemusím to ani includovat, stačí, že je blok vytvořen *}

	<p> Nějaký text....
	    <code>
	    {plink //Item:edit id=>$params['hash']}
	    </code>
	</p>
    </body>
</html>

Může mi někdo poradit, co dělám špatně?

Felix
Nette Core | 1247
+
0
-

Zkus pouzit {layout null} na zacatku toho souboru. Pripadne anonymni block, {block}(tvuj kod){/block}

zopper
Člen | 20
+
0
-

Díky! Než jsi napsal, tak jsem to zkusil vyřešit zazálohováním šablony z presenteru, přepsáním layoutu a šablony v něm a následně po odeslání mailu zase vrácením původních hodnot, ale nepřišlo mi to jako čisté řešení.

{layout} je přesně to makro, co jsem potřeboval, zvlášť když mu lze zadat cestu k souboru co se má jako layout použít. :-)