# ***************************************************************************************
# Default proc options in Page TSconfig for htmlArea RTE and Classic RTE
#
# Sets the proc options for all default configurations.
#
# Assumptions:	- CSS Styled Content is installed.
#		- XHTML output is expected.
#
# For documentation of RTE tranformations, see: http://typo3.org/documentation/document-library/doc_core_api/Introduction-e41faa8263/
# For documentation of Page TSConfig configuration of RTE processing, see: http://typo3.org/documentation/document-library/doc_core_api/Page_TSconfig/
# For documentation of the HTMLparser, see: http://typo3.org/documentation/document-library/doc_core_tsref/HTMLparser/
# For documentation of RTE settings in TCA, see: http://typo3.org/documentation/document-library/doc_core_api/Special_Configuratio-1/
#
# @author	Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca>
#
# TYPO3 CVS ID: $Id: pageTSConfig.txt 2616 2007-10-26 17:37:29Z stan $
# ***************************************************************************************

	## Default RTE processing rules
RTE.default.proc {
	
		## TRANSFORMATION METHOD
		## We assume that CSS Styled Content is used.
	overruleMode = ts_css
	
		## DO NOT CONVERT BR TAGS INTO LINEBREAKS
		## br tags in the content are assumed to be intentional.
	dontConvBRtoParagraph = 1
	
		## REMAP DIV TAGS TO P TAGS
		## For compatibility between Classic RTE and htmlArea RTE
	remapParagraphTag = p
	
		## TAGS ALLOWED OUTSIDE P & 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, o:p, 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, center, cite, code, col, colgroup, div, em, font,
		h1, h2, h3, h4, h5, h6, hr, i, img, li, link, ol, p, pre, q, sdfield,
		span, strike, strong, sub, sup, table, thead, tbody, tfoot, td, th, tr, tt, u, 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
			
				## CLEAN ATTRIBUTES ON THE FOLLOWING TAGS
			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, WORD 2003 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
