これを求めてネットを徘徊してきました。Magento Commerce は、私たちにとっては無意味です。コア コードを grep したり、Alan Storm を読んだり、Inchoo を熟読したり、SO で関連する質問を見つけたりしても、答えは見つかりません。
そうは言っても、私の問題は、フロントエンドからではなくバックエンドから処理されたときに機能するトランザクション電子メール テンプレートにあります。ここにスニペットがあります:
<td width="100%" colspan="2" align="left">
<!-- inject products quote table -->
{{block type="adminhtml/sales_quotation_email" template="sales/quotation/email_quote_items.phtml" inherits=$template quote=$quote salesrep=$salesrep}}
<!-- inject cross-sell products table -->
{{block type="adminhtml/sales_quotation_email" template="sales/quotation/email_quote_cross_sells.phtml" inherits=$template quote=$quote salesrep=$salesrep}}
</td>
バックエンドでは、これらのブロックが期待どおりにレンダリングされます。フロントエンドでは、これらのブロック ディレクティブの上下のすべてがレンダリングされますが、テンプレートをレンダリングするときになると、ディレクティブが処理中に死んでいるように見えます。エラーはスローされません。
ここのアドバイスに従いましたが、うまくいきませんでした。もともと、メール テンプレート モデルで setDesignConfig を使用しようとしましたが、うまくいきませんでした。をディレクティブの属性として設定しようとしましarea
たが、それも機能しませんでした。同僚は、上記のテンプレートの 2 つのコピーを持っていることを提案しましdesign/adminhtml
たdesign/frontend
。余分なメンテナンスを心配する必要はありません。さらに、ディレクティブで指定されたブロック タイプが adminhtml からのものである場合、同じ問題が発生するのではないかと心配しています。私はその解決策を望んでいません。
それで、私は何を間違っていますか?何がわかりませんか?
Magento はテンプレートへの実際のパスをどのように解決し、テンプレートはその親ブロックの領域に存在することを強制されますか?
助けが必要です!ありがとう。