使用自定义主题时不使用样式的CMS预览


10

我使用具有自定义主题的magento EE 1.13.1.0,该主题在“系统”->“配置”->“设计”->“默认”中设置。

当我们使用Magento CMS预览版时,会出现此问题。它显示时没有自定义主题样式,因为默认情况下magento预览使用base/default主题。

如果我编辑CMS Page的“设计”选项卡,并将Custom Theme属性设置为某些自定义主题,则一切正常。但是默认情况下不是。

以前有人问过这个问题吗?也许我错过了一些配置?

无论如何要解决此问题,我创建了观察者并将其附加到cms_page_render事件中以检查是否Custom Theme设置了CMS页面的属性。如果不是,则使用真实的默认主题:

public function setDefaultThemeForCmsPreview(Varien_Event_Observer $oObserver)
{
    $oRequest = $oObserver->getControllerAction()->getRequest();
    if (
        $oRequest->getControllerName() == 'cms_page_revision' && 
        $oRequest->getActionName() == 'drop'
    ) {
        $oCmsPage = $oObserver->getPage();
        if ($oCmsPage->getCustomTheme()) {
            list($sPackage, $sTheme) = explode('/', $oCmsPage->getCustomTheme());
        } else {
            $sPackage = Mage::getStoreConfig('design/package/name');
            $sTheme   = Mage::getStoreConfig('design/theme/default');
        }
        Mage::getSingleton('core/design_package')
            ->setPackageName($sPackage)
            ->setTheme($sTheme);
    }
}

2
使用EE,您已获得Varien的支持。向他们询问,可能是他们会为您修复的错误。
ProxiBlue 2014年

1
为记录
起见,

您可能要发布解决方案作为答案并接受它。
Matthias Zeis 2014年

Answers:


2

我在Magento Enterprise 1.12.x中遇到了这个问题-它似乎确实是一个尚未发现的Magento错误。我相信我的解决方法是编辑AdminHTML,但是我认为您的解决方案更加优雅。


0

我遇到了同样的问题,为此,我只复制了“ styles.css”并将其粘贴到“ \ skin \ frontend \ base \ default \ css”文件夹中,然后问题解决了。

那里的css文件不存在,所以出现了问题。可能是这个问题。


谢谢你的回答。但是将样式从当前主题更改为“ base \ default”并不能很好地解决此问题。首先,这是代码重复(如果需要更改样式,则需要支持两个文件)。第二个负面点是,如果您要更改主题,您的问题将再次出现。
oleksii.svarychevskyi 2014年

我认为,由于缺少样式表引起的问题,所以我只是将CE默认主题css(styles.css)复制到此处。它的工作很好。甚至我也改变了主题,使其工作正常。我不建议这是解决方案,这是EE中的错误。
Helphin 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.