Magento定制块中断网站。为什么?

时间:2012-11-27 19:54:38

标签: magento block magento-1.7

我正在研究magento 1.7的自定义块。我在我的配置xml中声明了这样的块。该模块还有一个定义的控制器,工作正常。我需要一个新的块,后面有一些逻辑,所以我想我会使用我已创建的模块。我在下面列出了块声明。

<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
    <Company_Catalog>
        <version>0.1.0</version>
    </Company_Catalog>
</modules>
<global>
    <blocks>
        <catalog>
            <class>Company_Catalog_Block</class>
        </catalog>
    </blocks>
</global>
</config>

我使用以下语法在我的主题的local.xml中使用了块:

<block type="catalog/featured" name="featuredproducts" before="-" template="catalog/featured.phtml"/>

该块看起来像我想要的那样,但问题是该站点的大部分内容都被破坏而且exception.log中充满了magento,正在查找模块中的其他块。例子:

2012-11-27T19:34:47+00:00 ERR (3):
exception 'Mage_Core_Exception' with message 'Invalid block type:Company_Catalog_Block_Product_List' in /home/project/site_content/app/Mage.php:594
2012-11-27T19:34:47+00:00 ERR (3):
exception 'Mage_Core_Exception' with message 'Invalid block type: Company_Catalog_Block_Product_List_Toolbar' in /home/project/site_content/app/Mage.php:594

我不想重写任何现有的块,只需在我已声明的模块中添加一个新块。

我显然告诉Magento在我的模块中查找超出我想要的内容。这是我第一次尝试使用Magento中的自定义块,所以我不确定我做错了什么。

我理解“目录”也用在Mage命名空间中,但我在自己的命名空间中工作。据我所知,不应该有冲突。

由于

1 个答案:

答案 0 :(得分:5)

您正在覆盖 Mage / Catalog / etc / config.xml 中的原始目录块类前缀:

<global>
    <blocks>
        <catalog>
            <class>Mage_Catalog_Block

通过这样做,每个对目录块类型(type="catalog/...")的请求使用的前缀都是Company_Catalog_Block