我在Content HTMLEditorField之前添加了HtmlEditorConfig。问题是,我需要刷新或重新加载浏览器页面才能查看我的自定义CSS设置...

我的代码:

HtmlEditorConfig::get('cms')->setOption('content_css', '/themes/simple/css/test'.$this->variable.'.css, /themes/simple/css/typography.css');
$fields->addFieldsToTab("Root.Main", new HTMLEditorField('Content', 'Content'));


我的问题:加载页面或数据对象时,是否可以自动刷新HTMLEditorField以使用HtmlEditorConfig设置?我无法在_config.php中使用它,因为我的自定义HtmlEditorConfig代码中有一个变量。

最佳答案

我找到了解决方案!还有另一种将HTMLEditorConfig与一些自定义变量一起配置的方法。在/mysite/_config.php中,无法使用HTMLEditorConfig添加变量。仅当一次刷新URL时,将HTMLEditorConfig与HTMLEditorField一起包含到Page类中是有效的。

解决方案是使用LeftAndMainExtension扩展LeftAndMain。有我的解决方案代码:

/mysite/_config.php

Object::add_extension("LeftAndMain", "HTMLEditorConfigSubsitesInit");


/mysite/code/HTMLEditorConfigSubsitesInit.php

class HTMLEditorConfigSubsitesInit extends LeftAndMainExtension
{
    function init()
    {

        $SiteConfig=SiteConfig::get()->filter('SubsiteID', Subsite::currentSubsiteID() )->First();
        $stripedMainFont = str_replace(" ", "-", $SiteConfig->MainFont );

        HtmlEditorConfig::get('cms')->setOption('content_css', '/mysite/css/fonts_'.$stripedMainFont.'.css, /assets/Subsite'.Subsite::currentSubsiteID().'/_customstyles.css, /themes/'.$SiteConfig->Theme.'/css/typography.css');

    }
}


对于HTMLEditor定制来说,使用Subsites模块添加与子站点相关的CSS样式文件非常有用。

09-28 05:46