Magento 我的system.log文件中反复出现奇怪的错误
在Magento Enterprise 1.8中,我一次又一次地遇到一个特定的错误,我想知道是否有其他人遇到过这个问题,以及他们是如何解决的 错误是: 无效的块类型:Mage\u CatalogInventory\u block\u Qtyincrements 我在那里也看到了很多: 无效的块类型:Mage\u Navadmin\u block\u NavadminMagento 我的system.log文件中反复出现奇怪的错误,magento,Magento,在Magento Enterprise 1.8中,我一次又一次地遇到一个特定的错误,我想知道是否有其他人遇到过这个问题,以及他们是如何解决的 错误是: 无效的块类型:Mage\u CatalogInventory\u block\u Qtyincrements 我在那里也看到了很多: 无效的块类型:Mage\u Navadmin\u block\u Navadmin 我只在Mage\u Core\u Model\u布局::\u getBlockInstance()中找到对“无效块类型”的引用 该
我只在
Mage\u Core\u Model\u布局::\u getBlockInstance()
中找到对“无效块类型”的引用
该错误可能是由于某个块没有继承自Mage\u Core\u block\u Abstract
,或者由于缺少适当的config.xml
文件,该块无法以其短格式加载
- 这些类是否确实存在于您的系统中
- 哪些元素在
文件中使用它们layout/*.xml
- 在
中是否有语法错误之类的问题?(配置文件位置是一个有根据的猜测)Mage/{Navadmin,CatalogInventory}/etc/config.xml
Mage\u Core\u Model\u布局中找到对“无效块类型”的引用::\u getBlockInstance()
该错误可能是由于某个块没有继承自Mage\u Core\u block\u Abstract
,或者由于缺少适当的config.xml
文件,该块无法以其短格式加载
- 这些类是否确实存在于您的系统中
- 哪些元素在
文件中使用它们layout/*.xml
- 在
中是否有语法错误之类的问题?(配置文件位置是一个有根据的猜测)Mage/{Navadmin,CatalogInventory}/etc/config.xml
此页面上有一些修补程序文件修复了Qtyincrements消息:
尝试实例化块对象时,如果Magento找不到类,它将记录错误,不渲染块,然后继续 这种情况在整个代码库中的几个地方都会发生,但最有可能发生在
File: app/code/core/Mage/Core/Model/Layout.php
protected function _getBlockInstance($block, array $attributes=array())
{
if (is_string($block)) {
if (strpos($block, '/')!==false) {
if (!$block = Mage::getConfig()->getBlockClassName($block)) {
Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
}
}
if (class_exists($block, false) || mageFindClassFile($block)) {
$block = new $block($attributes);
}
}
if (!$block instanceof Mage_Core_Block_Abstract) {
Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
}
return $block;
}
//...
public function getBlockSingleton($type)
{
if (!isset($this->_helpers[$type])) {
$className = Mage::getConfig()->getBlockClassName($type);
if (!$className) {
Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $type));
}
$helper = new $className();
if ($helper) {
if ($helper instanceof Mage_Core_Block_Abstract) {
$helper->setLayout($this);
}
$this->_helpers[$type] = $helper;
}
}
return $this->_helpers[$type];
}
那么,你的两个具体错误。Magento无法实例化
Mage_CatalogInventory_Block_Qtyincrements
Mage_Navadmin_Block_Navadmin
这可能是因为在1.8附带的布局中,核心代码试图使用一个块来实例化
<block type="cataloginventory/qtyincrements" name="product.info.extrahint" as="extrahint" template="cataloginventory/qtyincrements.phtml"/>
Enterprise 1.8中没有附带的Navadmin模块。基于块名,这意味着可能有一些块XML看起来像
<block type="navadmin/navadmin"
引用块的模板或XML布局文件可能留在您的系统上,但在系统中定义块的实际类文件除外
app/code/community/Mage/Navadmin/Block/Navadmin.php
他失踪了 尝试实例化块对象时,如果Magento找不到该类,它将记录错误,而不是渲染块,然后继续 这种情况在整个代码库中的几个地方都会发生,但最有可能发生在
File: app/code/core/Mage/Core/Model/Layout.php
protected function _getBlockInstance($block, array $attributes=array())
{
if (is_string($block)) {
if (strpos($block, '/')!==false) {
if (!$block = Mage::getConfig()->getBlockClassName($block)) {
Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
}
}
if (class_exists($block, false) || mageFindClassFile($block)) {
$block = new $block($attributes);
}
}
if (!$block instanceof Mage_Core_Block_Abstract) {
Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
}
return $block;
}
//...
public function getBlockSingleton($type)
{
if (!isset($this->_helpers[$type])) {
$className = Mage::getConfig()->getBlockClassName($type);
if (!$className) {
Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $type));
}
$helper = new $className();
if ($helper) {
if ($helper instanceof Mage_Core_Block_Abstract) {
$helper->setLayout($this);
}
$this->_helpers[$type] = $helper;
}
}
return $this->_helpers[$type];
}
那么,你的两个具体错误。Magento无法实例化
Mage_CatalogInventory_Block_Qtyincrements
Mage_Navadmin_Block_Navadmin
这可能是因为在1.8附带的布局中,核心代码试图使用一个块来实例化
<block type="cataloginventory/qtyincrements" name="product.info.extrahint" as="extrahint" template="cataloginventory/qtyincrements.phtml"/>
Enterprise 1.8中没有附带的Navadmin模块。基于块名,这意味着可能有一些块XML看起来像
<block type="navadmin/navadmin"
引用块的模板或XML布局文件可能留在您的系统上,但在系统中定义块的实际类文件除外
app/code/community/Mage/Navadmin/Block/Navadmin.php
他失踪了 线程+1,但我不会盲目地将这些补丁添加到1.8企业版。该线程正在处理1.4.1CE版本,这两个产品是独立的分支。是的,我注意到了。由于Magento Enterprise和Community如此不同,我很犹豫是否要将社区文件推入Enterprise。我可能不得不在这个问题上尝试一下这种支持。我会发布我得到的任何发现,以防其他人有此问题。他们可能已经在1.9中修复了它,特别是因为补丁来自他们自己的员工。@clcokworkgeek缺少的类在1.9中,所以Mage_CatalogInventory_Block_Qtyincrements问题应该得到修复。不过Navadmin是一个自定义模块,所以升级(或补丁)无法解决这个问题。线程+1,但我不会盲目地将这些补丁添加到1.8企业版。该线程正在处理1.4.1CE版本,这两个产品是独立的分支。是的,我注意到了。由于Magento Enterprise和Community如此不同,我很犹豫是否要将社区文件推入Enterprise。我可能不得不在这个问题上尝试一下这种支持。我会发布我得到的任何发现,以防其他人有此问题。他们可能已经在1.9中修复了它,特别是因为补丁来自他们自己的员工。@clcokworkgeek缺少的类在1.9中,所以Mage_CatalogInventory_Block_Qtyincrements问题应该得到修复。不过,Navadmin是一个自定义模块,因此升级(或补丁)无法解决此问题。Magento为我们提供了此问题的补丁,您对其他扩展的看法是正确的。Magento为我们提供了此问题的补丁,您对其他扩展的看法是正确的。