0

有什么方法可以轻松激活关于自定义管理主题的回退层次机制,因为它已经存在于前端区域?

目前尚不清楚用于“前端”区域的Mage_Core_Model_Design_Package类在何处以及如何实例化,我只是想知道我们是否可以重写和扩展它以使其也适用于后端。

目前,将 adminhtml/default/default/ 文件(用于设计和皮肤文件夹)复制到 adminhtml/package_name/theme_name 然后处理这些复制的文件并不是一种超级干净的方式,并且可能会因多个包而变得复杂和/或主题,与默认/默认相比,每个都只带来一些小的变化或改进。我认为它应该回退。

想法,有人吗?

4

1 回答 1

2

Mage_Core_Model_Design_Package::_fallback 中有一个错误。它也使用基本包作为 adminhtml 区域的后备包。相反,它应该使用默认包,因为 adminhtml 不存在基本包。您可以为设计包模型创建重写并修改 _fallback() 函数:

    protected function _fallback($file, array &$params, array $fallbackScheme = array(array()))    
        ...
        $params['_package'] = self::BASE_PACKAGE;
        // otherwise no admin packages with fallback to default package possible
        if ($this->_area == 'adminhtml') {
            $params['_package'] = self::DEFAULT_PACKAGE;
        }
        ...
   }

另一种解决方案是简单地将文件夹 app/design/adminhtml/default 重命名为 app/design/adminhtml/base。但是我不知道如果您要更新到更新的 magento 版本会发生什么。

于 2013-04-04T13:57:14.043 回答