Magento:Rewrite Block无效

时间:2012-03-05 11:17:56

标签: magento overwrite

我尝试从magento重写核心文件。 不知何故,它不会覆盖代码。我尝试覆盖函数getProduct()。

Tipfix /砌块/产品/ View.php

<?php

class WP_Tipfix_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_View
{

    public function getProduct()
    {

        if (!Mage::registry('product') && $this->getProductId()) {
            $product = Mage::getModel('catalog/product')->load($this->getProductId());
            Mage::register('product', $product);
        }

        //return Mage::registry('product');
    }
}

Tipfix的/ etc / config.xml中

<blocks>
    <WP_Tipfix>
        <class>WP_Tipfix_Block</class>
    </WP_Tipfix>
    <catalog>
        <rewrite>
            <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view>
        </rewrite>
    </catalog>
</blocks>

我知道我做错了什么。

的Gr。 莱克斯

2 个答案:

答案 0 :(得分:9)

您的课程为WP_Tipfix_Block_Catalog_Product_View,这意味着该课程必须位于WP/Tipfix/Block/Catalog/Product/View.php文件夹中。您必须将Product目录移动到该位置的名为Catalog的新目录中,或者将您的类(包括类和XML)重命名为WP_Tipfix_Block_Product_View。我建议移动文件。

答案 1 :(得分:3)

请将模块的config.xml内容更改为此,我确信它应该有效: -

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <WP_Tipfix>
            <version>1.0.0</version>
        </WP_Tipfix>
    </modules>

    <global>
        <blocks>
            <wptipfix>
                <class>WP_Tipfix_Block</class>
            </wptipfix>

            <catalog>
                <rewrite>
                    <product_view>WP_Tipfix_Block_Catalog_Product_View</product_view>
                </rewrite>
            </catalog>
        </blocks>
    </global>
</config>

希望它有所帮助。


<强>更新: - Ben 的评论之后,我觉得我应该提到OP还必须使用他的answer Max 所提到的解决方案。所以OP需要共同努力来解决他的问题。