【问题标题】:silverstripe - adding styles to 'styles' drop down menu on editorsilverstripe - 在编辑器的“样式”下拉菜单中添加样式
【发布时间】:2011-01-09 14:49:34
【问题描述】:

从上面的问题来看,我认为这会相对容易,但我找不到任何关于如何将样式添加到“样式”下拉菜单的文档。谁能把我推向正确的方向?

【问题讨论】:

    标签: styles silverstripe


    【解决方案1】:

    样式下拉列表会根据主题的typography.css 文件中的类自动填充。要添加类,只需确保它们在那里定义。或者,如果您想为类提供更友好的名称或从列表中删除某些类,您可以通过将其放入 _config.php 文件中来明确定义您想要列出的样式。

    HtmlEditorConfig::get('cms')->setOption('theme_advanced_styles', 
        'Name 1=class1;Name 2=class2');
    

    这是由所见即所得编辑器组件 TinyMCE 提供的功能,此行只是在 CMS 使用时设置 TinyMCE 的theme_advanced_styles 设置。 This thread on the TinyMCE site 也讨论过。

    另请注意以下 Markus 的回答:editor.css 需要位于主题 css 文件夹中并包含typography.css。

    【讨论】:

    • 如果你在typography.css中添加了一个类,但它没有出现在下拉列表中,请尝试清除浏览器缓存。
    • 正如@markus 提到的,TinyMCE 在 css 目录中寻找一个名为 editor.css 的文件,而不是typography.css
    • 我相信您实际上可以将您的“编辑器”css 文件放在任何地方,并且可以任意命名。您可以使用以下代码配置 TinyMCE 以加载 _config.php 中的任何 css 文件:HtmlEditorConfig::get('cms')->setOption('content_css','/themes/my-amazing-theme/styles/kick-ass-editor-styles.css');
    • 还值得注意的是,如果您使用上面的 'theme_advanced_styles' 方法,它将覆盖任何原本会在下拉列表中的类,因此您将只有“名称 1”和“名称 2” " - 就我而言,这是完全可以接受的,但要牢记这一点。
    • @Matt 我认为您应该将其发布为答案:)
    【解决方案2】:

    @Sam Minnée 的答案只有在 editor.css 也在主题 css 文件夹中并且包含typography.css 时才有效。

    这里有更多 detailed description 这两个如何一起玩的内容。

    如果您无法在编辑器中显示新样式,请尝试以下操作:

    • yoursite.com/admin/?flush=1
    • 检查 mythemes/css/editor.css 文件的文件权限。网络服务器用户应该可以读取它。

    【讨论】:

    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多