我一直在网上搜寻这个。Magento Commerce 对我来说很干。grepping 核心代码,阅读 Alan Storm,细读 Incho,甚至在 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
为指令中的属性,但这也不起作用。一位同事建议我将上述模板复制两份:一份设置为 in design/adminhtml
,另一份设置为design/frontend
. 我宁愿不必担心额外的维护。另外,如果指令中指定的块类型来自 adminhtml,我担心我会遇到同样的问题。我不想要那个解决方案。
那么我做错了什么?我不明白什么?
Magento 如何解析模板的真实路径,模板是否强制驻留在其父块的区域中?
需要帮助!谢谢。