0

在 magento 产品template/catalog/product/view.phtml中,我有

getchildhtml('container1','',true, true);
getchildhtml('container2','',true,true);

通过这个我得到自定义选项下拉。

它们在哪里渲染container1以及container2从哪里渲染?

4

2 回答 2

0

getChildHTML()函数包含在http://svn.magentocommerce.com/source/branches/1.2/app/code/core/Mage/Core/Block/Abstract.php

通过查看源代码,它正在寻找以前分配为“container1”或“container2”的东西。看起来这是使用setChild()同一文件中包含的函数设置的。

现在就动词“container1”和“container2”的来源而言,我认为它来自布局,如以下来源所示:http ://svn.magentocommerce.com/source/branches/1.4/app /design/frontend/default/modern/layout/catalog.xml

<block type="core/template_facade" name="product.info.container1" as="container1">
   <action method="setDataByKey"><key>alias_in_layout</key><value>container1</value></action>
   <action method="setDataByKeyFromRegistry"><key>options_container</key><key_in_registry>product</key_in_registry></action>
   <action method="append"><block>product.info.options.wrapper</block></action>
   <action method="append"><block>product.info.options.wrapper.bottom</block></action>
</block>
于 2012-04-12T11:38:19.613 回答
0

查看design>frontend>base>default>layout>catalog.xml中的catalog.xml文件你会看到container1和container2的定义。

<block type="core/template_facade" name="product.info.container1" as="container1">
                    <action method="setDataByKey"><key>alias_in_layout</key><value>container1</value></action>
                    <action method="setDataByKeyFromRegistry"><key>options_container</key><key_in_registry>product</key_in_registry></action>
                    <action method="append"><block>product.info.options.wrapper</block></action>
                    <action method="append"><block>product.info.options.wrapper.bottom</block></action>
                </block>
                <block type="core/template_facade" name="product.info.container2" as="container2">
                    <action method="setDataByKey"><key>alias_in_layout</key><value>container2</value></action>
                    <action method="setDataByKeyFromRegistry"><key>options_container</key><key_in_registry>product</key_in_registry></action>
                    <action method="append"><block>product.info.options.wrapper</block></action>
                    <action method="append"><block>product.info.options.wrapper.bottom</block></action>
                </block>

块类型“core/template_facade”是类 Mage_Core_Block_Template_Facade

您还可以在 Admin 中打开模板提示。请查看此信息以获取如何执行此操作的信息:如何跟踪 Magento 从何处调用模板?

于 2012-04-12T11:39:29.980 回答