我正在创建一个特定的捆绑产品,需要对select和checkbox模板进行一些自定义更改。
据说我可以在产品中添加自定义更新布局,但我所做的一切似乎都无法定位新的select.phtml模板。
<reference name="product.info.options.wrapper">
<!-- THIS WORKS -->
<block type="bundle/catalog_product_view_type_bundle" name="product.info.bundle.options" as="type_bundle_options" template="bundle/catalog/product/view/type/bundle/*custom*.phtml">
<action method="addRenderer">
<type>select</type>
<block>bundle/catalog_product_view_type_bundle_option_select</block>
<!-- THIS DOESN'T WORK -->
<template>*custom_folder*/bundle/catalog/product/view/type/bundle/option/*custom*-select.phtml</template>
</action>
</block>
<action method="insert"><block>product.info.bundle.options</block></action>
</reference>
查看catalog.xml,它看起来像复选框,并选择等等...指向模板,但不是在bundle.xml中。
而且,我当然可以覆盖主题 / template / bundle / catalog / ... etc ../ option / select.phtml中的默认模板......但我真的需要一个特定的一种产品的模板......不是全部。
我希望有人对此有所了解?也许我的方式错了?
答案 0 :(得分:0)
等/ config.xml中
<frontend>
<events>
<core_layout_block_create_after>
<observers>
<change_bundle_select_template>
<type>singleton</type>
<class>company_module/observer</class>
<method>bundleChangeTemplate</method>
</change_bundle_select_template>
</observers>
</core_layout_block_create_after>
</events>
</frontend>
型号/ Observer.php
public function bundleChangeTemplate($observer)
{
if ($observer->getBlock() instanceof Mage_Bundle_Block_Catalog_Product_View_Type_Bundle_Option_Select) {
$observer->getBlock()->setTemplate('bundle/catalog/product/view/type/bundle/option/sel.phtml');
}
}