3

我有一个 Magento 管理控制台扩展,可以在整个 Magento 管理控制台中启用模型窗口。在 Magento 1.7 中,我可以在出厂默认 CSS 文件中包含以下内容

$layout->getBlock('head')->addCss('lib/prototype/windows/themes/magento.css');    

但是,在 Magento 1.6 中,这个文件不在 skin 文件夹中,它在 'js_css' 文件夹中,我需要使用它

$layout->getBlock('head')->addItem('js_css', 'prototype/windows/themes/magento.css')

是否有一种优雅、直接的方式来确保此文件正确包含在 Magento 的所有版本中,而无需使用版本嗅探,也无需制作我自己的文件副本。

4

3 回答 3

3

我暂时就这样做了——让问题保持开放,希望能有更好的结果出现。

        //would fail if Magento lives in a sub-folder named base
        $skin_url = $design->getSkinUrl('lib/prototype/windows/themes/magento.css');
        $parts = explode('/',$skin_url);
        if(in_array('base', $parts))
        {
            $head->addItem('js_css', 'prototype/windows/themes/magento.css');
        }
        else
        {
            $head->addCss('lib/prototype/windows/themes/magento.css');    
        }
于 2012-08-16T22:41:57.680 回答
2

可能最安全的方法是将您自己的文件版本与您的包一起分发。

  • 安装包后,您将绝对确定文件所在的位置
  • 没有不必要的 FS 命中
  • 不依赖于 Magento 提供的版本(当然这会适得其反,一如既往)
于 2012-08-16T20:19:42.613 回答
2

我不知道这个建议是否更好,但您可以检查文件存在的位置并让它确定调用哪个方法。

于 2012-08-16T20:00:10.360 回答