我尝试安装Hardwood主题,但是我收到了这个错误:
致命错误:在第555行的/volume1/web/magento/app/code/core/Mage/Core/Model/Layout.php中的非对象上调用成员函数toHtml()
以下是第555行附近的代码:
public function getOutput()
{
$out = '';
if (!empty($this->_output)) {
foreach ($this->_output as $callback) {
$out .= $this->getBlock($callback[0])->$callback[1]();
}
}
return $out;
}
我应该改变什么?
答案 0 :(得分:0)
靠近第555行?哪一个是第555行?
一种非常强硬的方法是添加对is_object()的调用,但你不想这样做。你想要的是主题作者修复他的主题。
public function getOutput()
{
$out = '';
if (!empty($this->_output)) {
foreach ($this->_output as $callback) {
//hack
if (is_object($callback)) {
$out .= $this->getBlock($callback[0])->$callback[1]();
} //end hack
}
}
return $out;
}
答案 1 :(得分:0)
旧的PHP版本在表达式中接受了$ callback [],允许读出$ callback内容而不管语法如何。 PHP 5.1认为这是非法的。 如果是object属性,您可以将$ call包装在{}。
中public function getOutput()
{
$out = '';
if (!empty($this->_output)) {
foreach ($this->_output as $callback) {
$out .= $this->getBlock($callback[0])->${callback[1]}();
}
}
return $out;
}
我的magento主题是Carstore,它已经过时但是我必须与之合作,因为我的客户买了它。 链接到我的主题:http://themeforest.net/item/accessories-car-magento-theme/662796?s_rank=1