Magento:安装Hardwood主题时出现致命错误

时间:2014-12-09 22:16:33

标签: php magento

我尝试安装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;
    }

我应该改变什么?

2 个答案:

答案 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