How To Limit the Buttons on the RTE Toolbar For a Particular User or Group

One of the nicer features of TYPO3 is its Rich Text Editor (RTE) API, which allows many different WYSIWYG content editors to be plugged in to the CMS as extensions. I use the HTMLArea RTE, which comes with newer versions of TYPO3, but thanks to the API if you prefer a different editor you can easily plug one in.

A common question I’ve encountered about using the RTE is this one. Imagine that you’re the administrator of a TYPO3 site, and you’ve delegated content management to one or more site editors. These folks are not necessarily technical, so you’ve configured their TYPO3 accounts to only have a limited number of options. But when they go to edit content, they get an RTE with three toolbars full of confusing-looking buttons, many of which would allow them to add in esoteric markup that can break the semantic structure of the page.

So how do we limit the range of things they can do in the RTE? The answer is pretty simple: just go to that user’s TSConfig and add in the following directive:

options.RTEKeyList =

… followed by a comma separated list of the buttons you want them to have access to.

The names of the buttons will vary depending on the RTE you’re using; consult its documentation for a list. For HTMLArea, this is a common setup I use to provide access to a limited number of useful RTE buttons:

options.RTEKeyList = bold, italic, underline, subscript, superscript, orderedlist, unorderedlist, outdent, indent, insertcharacter, line, link, findreplace, spellcheck, copy, cut, paste, undo, redo

Note that if you have more than one or two backend users, it’s usually simpler to manage things like this by creating backend user groups and setting TSConfig for the whole group, rather than user by user. The same TSConfig above should work fine if applied to a group rather than to a particular user.

For a more detailed look at configuring the HTMLArea RTE, including how to allow access to your own classes and how to clean up the output so that it’s XHTML compliant, check out Cast Iron Coding’s "Recommended Configuration for HTMLArea" document.