【问题标题】:SilverStripe Tinymce configuration not updating inside moduleSilverStripe Tinymce 配置未在模块内更新
【发布时间】:2015-01-06 07:59:30
【问题描述】:

我们有一个样板模块,我们包含在您的所有 SilverStripe 构建中。我们正在尝试将一个新类添加到我们自定义的所见即所得配置中。

奇怪的是,我们有一个专门用于此的模块,但是一旦我们将此配置移出该模块并进入新模块,该配置仅反映了一些更改,而不是全部。

例子:

wysiwygboilerplate/_config.php

公司名称-样板/_config.php

第一个示例显示了正确的所见即所得配置。当相同的代码移动到新位置“companyname-boilerplate/”目录时,它将停止运行。

这是我正在使用的代码的 sn-p。 (唯一的更新是内容 css 的路径)

//-------------------------------------------- WYSIWYG config

$defaultEditorConfig = HtmlEditorConfig::get('cms');
$defaultEditorConfig->setOptions(
    array(
        'theme'                         => 'advanced',
        'priority'                      => 1,
        'browser_spellcheck'            => true,
        'body_class'                    => 'wysiwyg',
        'content_css'                   => '/companyname-boilerplate/styles/wysiwyg.css',
        'schema'                        => 'html5',
        'extended_valid_elements'       => 'figure,figcaption',
        'end_container_on_empty_block'  => true,
        'style_formats'                 => array(
            array(
                'title'     => 'H1',
                'block'     => 'h1'
            ),
            array(
                'title'     => 'H2',
                'block'     => 'h2'
            ),
            array(
                'title'     => 'H3',
                'block'     => 'h3'
            ),
            array(
                'title'     => 'H4',
                'block'     => 'h4'
            ),
            array(
                'title'     => 'H5',
                'block'     => 'h5'
            ),
            array(
                'title'     => 'Paragraph',
                'block'     => 'p'
            ),
            array(
                'title'     => 'Blockquote',
                'block'     => 'blockquote',
                'wrapper'   => true
            ),
            array(
                'title'     => 'Figure',
                'block'     => 'figure',
                'wrapper'   => true
            ),
            array(
                'title'     => 'Figure caption',
                'block'     => 'figcaption',
                'wrapper'   => true
            )
        )
    )
);

$defaultEditorConfig->disablePlugins('contextmenu');
$defaultEditorConfig->enablePlugins('lists', 'paste');
$defaultEditorConfig->setButtonsForLine(1, 'styleselect, formatselect, separator, bold, italic, separator, justifyleft, justifycenter, justifyright, separator, bullist, numlist, separator, charmap, ssmedia, separator, sslink, unlink, separator, code');
$defaultEditorConfig->setButtonsForLine(2);
$defaultEditorConfig->setButtonsForLine(3);

我最初的想法是,这与 SilverStripe 加载配置文件的顺序有关,但我知道没有其他文件/模块定义了 HtmlEditorConfig。

我的另一个想法是缓存,我清除了 SilverStripe 缓存、我的浏览器缓存,甚至运行了一个开发/构建,仍然没有任何乐趣,所以排除了缓存

【问题讨论】:

    标签: php tinymce silverstripe


    【解决方案1】:

    由于模块配置按字母顺序包含,您要么必须重命名样板模块(或 composer.json 中的安装目录),它位于 framework 之后,要么手动将配置放入 mysite,因为 @987654325 @ 最后添加,您可以在那里覆盖设置。

    【讨论】:

    • 感谢您的回答!所以模块只能按字母顺序加载?!太可怕了……这让我回到了将您的企业命名为“AAAA 公司”以进入电话目录顶部的过去。有没有办法手动给模块优先级(除了将所有配置放入 mysite 目录)?
    • 正常情况下没关系,因为你可以在你的 yml 配置中定义之前应该加载的其他配置。所以覆盖一些东西很容易——在 yml 中。不幸的是 htmleditor 不使用 yml :( 随时在 github github.com/silverstripe/silverstripe-framework/issues 提出问题
    • 我昨天提交了一个拉取请求,用于在 htmleditor 的图像对齐下拉列表中添加另一个类。伙计们回应说,通过 yml 更新这些会很好,但目前还没有 sdaly。他们建议有人调查一下。我对 SilverStripe 的内部工作原理以及 yml 文件的工作原理知之甚少,但是当我有时间的时候会对此进行破解。 github.com/silverstripe/silverstripe-framework/pull/… 再次感谢您帮助理解这一点。
    猜你喜欢
    • 2015-08-23
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    相关资源
    最近更新 更多