TYPO3:如何向RTE添加元素,允许用户使用已定义的CSS类

时间:2012-01-05 10:37:55

标签: css typo3 typoscript rte

我希望用户能够在RTE中选择文本样式,如细节,重要,人名等。所以我想定义一个CSS,这个选项应该在RTE中显示。 CSS样式应该是span并且只能设置颜色。

目前我有以下代码:

RTE.classes{
  highlight{
      name = test
      value = color:#0A8AD2;
  } 
}

RTE.default{
  ignoreMainStyleOverride = 1 
  useCSS = 1
  contentCSS = fileadmin/templates/css/rte_formats.css
  classesCharacter := addToList(highlight)
  classesParagraph := addToList(highlight)
  proc.allowedClasses := addToList(highlight)
}

CSS文件的内容是

span.highlight, p.highlight {
    color:#0A8AD2;
}

但新添加的样式未显示在下拉列表中(textstyle)。我还在rtehtmlarea配置中启用了“additonal inline elements”。我也尝试设置showTagFreeClasses等等但没有成功。然后我读到了缓存问题。我删除了RTE缓存以及浏览器缓存。仍然没有结果。什么可能是错的?

1 个答案:

答案 0 :(得分:4)

你基本上走在正确的轨道上了!

我在使用inlineStyle时遇到了一些问题。其中一个原因是您必须明确取消定义contentCSS才能使内联工作(仅设置ignoreMainStyleOverride = 0!):

RTE.default.contentCSS >

我个人更喜欢专用的外部CSS文件。重要的是要知道TYPO3 RTE真正解析这个CSS文件,只提供那里实际找到的那些类!
因此,您必须使用contentCSS参数来定义CSS,并且此CSS必须包含您希望为用户提供的类。以下是您必须如何定义它:

# TS-Config
RTE.default.ignoreMainStyleOverride = 1
RTE.default.contentCSS = fileadmin/templates/css/rte_formats.css

在给定网址上的CSS文件必须存在必须包含您要提供的CSS类的定义(正如所说的那样,CSS文件已被解析)和丢失的类不会显示在下拉选择器中:

/* content of rte_formats.css */
/* span. needed for RTE.default.classesCharacter */
/* p.    needed for RTE.default.classesParagraph */
span.highlight, p.highlight{ color:#0A8AD2; }

还有一个暗示:
我建议不要用自己的类名覆盖allowedClasses,而是附加到它们:

RTE.default.proc.allowedClasses := addToList( highlight, myOtherClass, myThirdClass )
祝你好运!