Magento:重写块不工作

Magento:重写块不工作,magento,overwrite,Magento,Overwrite,我试图从magento重写核心文件。 不知何故,它不会覆盖代码。我试图覆盖函数getProduct() Tipfix/Block/Product/View.php <?php class WP_Tipfix_Block_Catalog_Product_View extends Mage_Catalog_Block_Product_View { public function getProduct() { if (!Mage::registry('pro

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

Tipfix/Block/Product/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');
    }
}

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

请将模块的
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>

1.0.0
WP_Tipfix_区块
WP_Tipfix_块_目录_产品_视图
希望能有帮助


更新:-
在Ben发表评论后,我觉得我应该提到OP也必须使用Max在他的评论中提到的解决方案。因此OP需要共同努力来解决他的问题。

谢谢你解决了这个问题。伟大的基于OP的原始代码,此解决方案无法修复此问题。@Ben-请仔细查看
config.xml
文件内容,发现其中没有提到任何
config
节点,也没有提到
模块
节点。所以我提供了这个解决方案,事实上,OP自己评论说它解决了他的问题。那么,你能告诉我,我做错了什么吗?正如你在编辑中猜测的那样,重写的类名将由自动加载程序解析为
WP/Tipfix/Block/Catalog/Product/View.php
——因此Max的答案是正确的解决方案,假设OP为了简洁而剪切配置。另外,版本号和类组对于重写来说是完全多余的。@Ben-OP在
config.xml
文件中发布的内容不是一个片段,而是整页的源代码,否则OP不会在这个链接中注释掉:。另外,如果你认为我的帖子在任何地方都是错误的,那么请将其标记为错误&你可以选择删除。我不会对此感到不安。仅供参考,除非您正在创建块类,否则类组
是不必要的。如果这不起作用,您还必须清除缓存!
<?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>