Typo3: htmlRTE “Zebra” tables (classes for odd/even rows) using TSConfig
It took me some hours and the documentation is not very good, but finally I have found out how to mark up table rows from RTE tables (not elements with content type “table”) with alternating CSS classes. Put this into your page TSConfig:
RTE.classes.zebra-rows {
name = Zebra table
alternating.rows {
startAt = 1
oddClass = odd
evenClass = even
}
}
RTE.default {
ignoreMainStyleOverride = 0
inlineStyle.zebra-tables (
table.zebra-rows { }
table.zebra-rows tr { background: lime; } /* or whatever color */
table.zebra-rows tr.odd { background: red; } /* or whatever color */
)
classesTable = zebra-rows
classesTR = odd, even
proc.allowedClasses := addToList(zebra-rows, odd, even)
)
Then you only have to assign the block style “Zebra table” in the RTE.
It is also be possible to put the styling into a content CSS file. In that case, you have to set ignoreMainStyleOverride=1, contentCSS=path/to/content.css and then omit the inlineStyle lines.
For ideal table processing, put this into your TypoScript setup (not TSConfig):
lib.parseFunc_RTE.externalBlocks = ul,ol,table
lib.parseFunc_RTE.externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list >
lib.parseFunc_RTE.externalBlocks.table.HTMLtableCells.default.callRecursive = 0
lib.parseFunc_RTE.externalBlocks.table.HTMLtableCells.default.stdWrap.parseFunc {
makelinks = 1
makelinks.http.keep = scheme,path,query
makelinks.mailto.keep = path
tags {
link = TEXT
link {
current = 1
typolink.parameter.data = parameters : allParams
}
}
}
It makes the table class zebra-rows working and prevents wrapping table cells with <p> etc. while keeping links intact.
Have fun!