如何重写方法getSelectionQtyTitlePrice

时间:2013-02-18 13:37:28

标签: magento

我正在尝试覆盖getSelectionQtyTitlePrice方法 我创建了一个文件 My_Bundle.xml

<?xml version="1.0" ?>
<config>
    <modules>
        <My_Bundle>
            <active>true</active>
            <codePool>local</codePool>
        </My_Bundle>
    </modules>
</config>
PA中的

- &gt;系统 - &gt;高级模块存在并启用 在app / code / local / My / Bundle / Block / Catalog / Product / View / Type / Bundle Option.php

class My_Bundle_Block_Catalog_Product_View_Type_Bundle_Option extends Mage_Bundle_Block_Catalog_Product_View_Type_Bundle_Option
{
  public function getSelectionQtyTitlePrice($_selection, $includeContainer = false)
    {
        $price = $this->getProduct()->getPriceModel()->getSelectionPreFinalPrice($this->getProduct(), $_selection);
        $this->setFormatProduct($_selection);
        $priceTitle = $_selection->getSelectionQty()*1 . ' x ' . $this->escapeHtml($_selection->getName());

        $priceTitle .= ' &nbsp; ' . ($includeContainer ? '<span class="price-notice">' : '')
            . '' . $this->formatPriceString($price, $includeContainer)
            . ($includeContainer ? '</span>' : '');

        return  $priceTitle;
    }
}

在app / code / local / My / Bundle / etc / config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <My_Bundle>
            <version>0.0.1</version>
        </My_Bundle>
    </modules>

    <global>
        <blocks>
            <bundle>
                   <rewrite>
                       <catalog_product_view_type_bundle_option>My_Bundle_Block_Catalog_Product_View_Type_Bundle_Option</catalog_product_view_type_bundle_option>
                    </rewrite>
            </bundle>
        </blocks>
     </global>
</config>

但是此解决方案不会覆盖getSelectionQtyTitlePrice方法。 请求帮助

1 个答案:

答案 0 :(得分:2)

看看@ http://www.magentocommerce.com/boards/viewthread/265060/#t357807

  

由于此块从未实例化,因此您应该覆盖它   子类,并在其中应用您的本地更改。

所以: 在config.xml中

<bundle> 
    <rewrite> 
        <catalog_product_view_type_bundle_option_select>Module_Block_Bundle_Option_Select</catalog_product_view_type_bundle_option_select> 
        <catalog_product_view_type_bundle_option_multi>Module_Block_Bundle_Option_Multi</catalog_product_view_type_bundle_option_multi> 
        <catalog_product_view_type_bundle_option_radio>Module_Block_Bundle_Option_Radio</catalog_product_view_type_bundle_option_radio> 
        <catalog_product_view_type_bundle_option_checkbox>Module_Block_Bundle_Option_Checkbox</catalog_product_view_type_bundle_option_checkbox>
    </rewrite> 
</bundle>