3

送信するメールにレイアウトを使用したいと考えています。私は現在、Web ページに Zend Layout を使用していますが、メールにもテーマを設定したいと考えています。

これが私が試したことです。

これは、メールを送信する私の機能です

    $layout = Zend_Layout::getMvcInstance();
    $this->_view->render($template);
    $html = $layout->render('email');
    $this->setBodyHtml($html,$this->getCharset(), $encoding);
    $this->send();

メールのレイアウトはシンプル

    The email content
    <?php echo $this->layout()->content; ?>

それが電子メールとして届くとき、それはただ...

    The email content
4

2 に答える 2

5

元の方法にかなり近づいています。ただし、必要なZend_Layoutものを取得するには、さらにいくつかの手順を実行する必要があります。

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('email')
    ->disableLayout();
$layout->content = $this->_view->render($template);
$html = $layout->render();

$this->setBodyHtml($html, $this->getCharSet(), $encoding)->send();

への呼び出しは、レイアウト レンダリングの直接出力を防ぎ、代わりにレンダリングされたレイアウトを変数Zend_Layout::disableLayout()に保存できるようにします。$html次に、Zend_Viewテンプレートのレンダリングを手動でZend_Layout::content変数に格納する必要があります。その後、設定は完了です。

を使用Zend_Layout::setViewしてレイアウト内に のインスタンスを設定してZend_View、レイアウトをレンダリングするときにビュー変数にアクセスできるようにすることもできます。おそらく、これを処理するビュー ヘルパーを作成することもできます。

于 2012-01-05T03:17:37.987 に答える
0

Zend_View を使用して電子メール テンプレートを生成することを考えたことはありますか?

于 2010-07-21T18:05:54.480 に答える