我正在研究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命名空间中,但我在自己的命名空间中工作。据我所知,不应该有冲突。
由于
答案 0 :(得分:5)
您正在覆盖 Mage / Catalog / etc / config.xml 中的原始目录块类前缀:
<global>
<blocks>
<catalog>
<class>Mage_Catalog_Block
通过这样做,每个对目录块类型(type="catalog/..."
)的请求使用的前缀都是Company_Catalog_Block
。