Загрузка файла представления в переменную в Zend Framework - PullRequest
1 голос
/ 28 мая 2009

Я пытаюсь отправить почту, используя почтовые шаблоны. Для этого я хочу загрузить .tpl в переменную. Вместо загрузки файла HTML и замены заполнителей, мне интересно, возможно ли установить значения представления в контроллере, а затем загрузить это представление в переменную. Таким образом, у меня будет переменная, содержащая почту HTML, заполненную информацией, установленной в контроллере до загрузки представления.

Любые альтернативы также приветствуются, я имею в виду, если уже есть способы сделать шаблоны писем более стандартизированным способом.

Ответы [ 2 ]

8 голосов
/ 28 мая 2009

Отличная идея, Эрик, и я делал это много раз.

Zend_View на самом деле является просто системой шаблонов и может использоваться для генерации чего угодно, не только HTML.

Пример кода - создайте представление, назначьте некоторые данные, отредактируйте представление и отправьте письмо!

$view = $this->getHelper('ViewRenderer')->view;

$view->email = $data['email'];    
$view->password = $data['password'];

$text = $view->render('mail/new-user.php');
$mail = new Zend_Mail();

$mail->addTo($data['email'], $data['forename'] . ' ' . $data['lastname']);
$mail->setSubject('Account Details');
$mail->setBodyText($text, 'utf-8');

$mail->send();

В первой строке я получаю представление ViewRenderer, чтобы у меня был доступ к обычным путям сценария. Вы можете создать новый объект Zend_View, но вам нужно будет вручную добавить путь к сценариям представления.

В моем примере текстовый контент генерируется, но вы все равно можете генерировать HTML.

0 голосов
/ 28 мая 2009

Извините, ребята (и девушки). Мои навыки в Google, должно быть, заметили, что это было рано утром. Я нашел то, что искал здесь: http://myzendframeworkexperience.blogspot.com/2008/09/sending-mails-with-templates.html

...