TYPO3: A default RTE configuration

Here is my default TSConfig configuration for the htmlAREA RTE. I use this one in combination with a typical (default) configuration in the Extension Manager with images enabled.

#-----------------------------------
# RTE Configuration	
#-----------------------------------

RTE.default {

    ## Custom client CSS for same behavoir in BE and FE
    # contentCSS = fileadmin/.....
	
    hideTableOperationsInToolbar = 1
    buttons.toggleborders.keepInToolbar = 1
    showButtons ( 
	bold, italic, underline, 
	left, center, right, justifyfull,
	orderedlist, unorderedlist, 
	line, link, image,
	table, findreplace, chMode, 
	copy, cut, paste, undo, redo, toggleborders,
	tableproperties, rowproperties, rowinsertabove, 
	rowinsertunder, rowdelete, rowsplit, 
	columninsertbefore, columninsertafter, 
	columndelete, columnsplit, cellproperties, 
	cellinsertbefore, cellinsertafter, 
	celldelete, cellsplit, cellmerge
    )
    toolbarOrder ( 
	bold, italic, underline, 
	left, center, right, justifyfull,
	orderedlist, unorderedlist, 
	line, link, image,
	table, findreplace, chMode, 
	copy, cut, paste, undo, redo, toggleborders,
	tableproperties, rowproperties, rowinsertabove, 
	rowinsertunder, rowdelete, rowsplit, 
	columninsertbefore, columninsertafter, 
	columndelete, columnsplit, cellproperties, 
	cellinsertbefore, cellinsertafter, 
	celldelete, cellsplit, cellmerge
   )

   proc {
	## CSS Styled Content is used.
	overruleMode = ts_css

	## Do not convert br to p
	dontConvBRtoParagraph = 1

	## Remap div to p
	remapParagraphTag = p

	## Tag which are allowed outside the p and div
	allowTagsOutside = hr, address

	## TAGS ALLOWED
	## Added to the default internal list: b,i,u,a,img,br,div,center,pre,font,hr,sub,sup,p,strong,em,li,ul,ol,blockquote,strike,span
	## But, for the sake of clarity, we use a complete list in alphabetic order.
	## center, font, strike, sdfield and  u will be removed on entry (see below).
	## b and i will be remapped on exit (see below).
	## Note that the link accessibility feature of htmlArea RTE does insert img tags.
	allowTags (
		a, abbr, acronym, address, blockquote, b, br, caption, cite, code, div, em,
		h1, h2, h3, h4, h5, h6, hr, i, img, li, link, ol, p, pre, q, sdfield,
		span, strong, sub, sup, table, tbody, td, th, tr, tt, ul
	)

	## TAGS DENIED
	## Make sure we can set rules on any tag listed in allowTags.
	denyTags >

	## ALLOWED P & DIV ATTRIBUTES
	## Attributes class and align are always preserved
	## Align attribute will be unset on entry (see below)
	## This is a list of additional attributes to keep
	keepPDIVattribs = xml:lang

	## CONTENT TO DATABASE
	entryHTMLparser_db = 1
	entryHTMLparser_db {
		## TAGS ALLOWED
		## Always use the same list of allowed tags.
		allowTags < RTE.default.proc.allowTags
		
		## TAGS DENIED
		## Make sure we can set rules on any tag listed in allowTags.
		denyTags >

		## AVOID CONTENT BEING HSC'ed TWICE
		htmlSpecialChars = 0

		tags {
			## REMOVE IMG TAGS
			# img.allowedAttribs = 0
			# img.rmTagIfNoAttrib = 1

			## REMOVE SPAN TAGS
			span.allowedAttribs = 0
			span.rmTagIfNoAttrib = 1

			## CLEAN ATTRIBUTES ON THE FOLLOWING TAGS
			## Span fixAttrib unnessesary since not allowed.
			#span.fixAttrib.style.unset = 1
			p.fixAttrib.align.unset = 1
			div.fixAttrib.align.unset = 1
			hr.allowedAttribs = class
			b.allowedAttribs = xml:lang
			blockquote.allowedAttribs = xml:lang
			cite.allowedAttribs = xml:lang
			em.allowedAttribs = xml:lang
			i.allowedAttribs = xml:lang
			q.allowedAttribs = xml:lang
			strong.allowedAttribs = xml:lang
			sub.allowedAttribs = xml:lang
			sup.allowedAttribs = xml:lang
			tt.allowedAttribs = xml:lang
		}

		## REMOVE OPEN OFFICE META DATA TAGS AND DEPRECATED HTML TAGS
		## We use this rule instead of the denyTags rule so that we can 
		## protect custom tags without protecting these unwanted tags.
		removeTags = center, font, o:p, sdfield, strike, u

		## PROTECT CUSTOM TAGS
		keepNonMatchedTags = protect
	}

	HTMLparser_db {
		## STRIP ALL ATTRIBUTES FROM THESE TAGS
		## If this list of tags is not set, it will default to: b,i,u,br,center,hr,sub,sup,strong,em,li,ul,ol,blockquote,strike.
		## However, we want to keep xml:lang attribute on most tags and tags from the default list where cleaned on entry.
		noAttrib = br

		## XHTML COMPLIANCE
		## Note that applying xhtml_cleaning on exit would break non-standard attributes of typolink tags
		xhtml_cleaning = 1
	}

	exitHTMLparser_db = 1
	exitHTMLparser_db {
		## REMAP B AND I TAGS
		## b and i tags are used by Mozilla/Firefox in editing mode.
		## This must be done on exit because the default HTMLparser_db parsing executes the reverse mapping.
		tags.b.remap = strong
		tags.i.remap = em
		
		## KEEP ALL TAGS
		## Unwanted tags were removed on entry.
		## Without this rule, the parser will remove all tags! Presumably, this rule will be more efficient than repeating the allowTags rule
		keepNonMatchedTags = 1

		## AVOID CONTENT BEING HSC'ed TWICE
		htmlSpecialChars = 0
	}
   }
}

## Use same RTE processing rules in FE
RTE.default.FE.proc < RTE.default.proc

## RTE processing rules for bodytext column of tt_content table
## Erase settings from other extensions
RTE.config.tt_content.bodytext >

## Make sure we use ts_css transformation
RTE.config.tt_content.bodytext.proc.overruleMode = ts_css
RTE.config.tt_content.bodytext.types.text.proc.overruleMode = ts_css
RTE.config.tt_content.bodytext.types.textpic.proc.overruleMode = ts_css

Bookmark and Share

Drop a comment


Comments are currently unavailable due to massive spam.

I might try and install another spam-protection later.