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

ddh*_*ahn 4 block magento 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>
Run Code Online (Sandbox Code Playgroud)

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

<block type="catalog/featured" name="featuredproducts" before="-" template="catalog/featured.phtml"/>
Run Code Online (Sandbox Code Playgroud)

该块看起来像我想要的那样,但问题是该站点的大部分内容都被破坏,而且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
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢

ben*_*rks 5

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

<global>
    <blocks>
        <catalog>
            <class>Mage_Catalog_Block
Run Code Online (Sandbox Code Playgroud)

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