0

私が持っているmagento製品template/catalog/product/view.phtmlでは

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

これにより、カスタム オプションのドロップダウンが表示されます。

それらは何でcontainer1container2どこからレンダリングされますか?

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 です。

管理画面でテンプレート ヒントをオンにすることもできます。これを行う方法については、これを参照してください: Magento がテンプレートを呼び出している場所をトレースする方法は?

于 2012-04-12T11:39:29.980 に答える