包括Magento的“prototype / windows / themes / magento.css”

时间:2012-08-16 19:41:21

标签: css magento magento-layout-xml

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

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

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

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

我是否有一种优雅,直接的方式来确保在所有版本的Magento 中正确包含此文件使用版本嗅探和而不诉诸于我自己的文件副本。

3 个答案:

答案 0 :(得分: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');    
        }

答案 1 :(得分:2)

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

答案 2 :(得分:2)

最安全的方法可能是使用您的软件包分发您自己的文件版本。

  • 您将绝对确定文件包安装后文件所在的位置
  • 没有不必要的FS命中
  • 不依赖于Magento提供的版本(当然这可能会像往常一样适得其反)