Mailer a lokální proměnná $mail v šabloně

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

Zdravím,

mám komponentu mailer která odešle mail s obsahem ze šablony. V šabloně mám:

<?php
var $mail->from = "Franta <franta@example.com>"
?>

Já bych chtěl občas from předefinovat v maileru (v šabloně mít jakousi default hodnotu), tedy v odesílací metodě maileru mám:

<?php
$template = $this->createTemplate();
$template->setFile(__DIR__ . '/../../templates/Emails/xxx.latte');
$mail = new Message;

$mail->setHtmlBody($template);
if(!empty($this->from))	$mail->setFrom($this->from);
?>

Tím posledním řádkem chci nahradit frantu, ale nic se nestane. Pro $this->from mám setter. Jde to vubec?

jiri.pudil
Nette Blogger | 1032
+
0
-

setHtmlBody() jenom řekne mailu, kterou šablonu má použít. K jejímu zpracování dochází až při odeslání. Takže takhle si v šabloně odesilatele vždycky přepíšeš.

libik
Člen | 96
+
0
-

Diky za nakopnuti, mam to v sablone tedy takto:

<?php
{default $from = "Franta <franta@example.com>"}
{var $mail->from = $from}
?>

A v maileru

<?php
if(!empty($this->from)) $template->from = $this->from;
?>

Funguje.

Editoval libik (1. 8. 2013 11:03)