hallo,
ich bin nun dabei das rte-monster zu konfigurieren eigentlich fehlt mir nicht mehr viel, nun bin ich gerade dabei die table des rte so zu gestallten, dass der user möglichst das ci nicht verbiegen kann. auch zebratabellen klappen schon. leider ist vom designer, wohl auch aus accessebility-gründen, vorgesehen dass die gesamte table mit einem div-container umschlossen wird - da ich noch naiv genug bin und mir gedacht habe das kann ich sicher "einfach" über typoscript lösen habe ich es mit zig varianten meiner letzten zeile in folgender config, ohne erfolg probiert:
# RTE -----------------------------------------------------------------------------------------------------------------------------
# delete all standard settings for the classes and reconfigure the styles included in the select boxes
page.RTE.classes >
page.RTE.classes {
subueberschrift {
name = Subüberschrift
value = margin:0; color:#009252; font:bold 1em/1.33em Arial, Helvetica, sans-serif; text-transform:uppercase;
}
content-list {
name = Verweis
}
content-listenpunkt {
name = Listenpunkt
}
stripedtable {
name = Tabelle mit alternierenden Zeilen
alternating.rows {
# 0 = even, 1 = odd
startAt = 1
oddClass = odd
evenClass = even
oddHeaderClass = odd
evenHeaderClass = even
}
}
}
# alternating row background in a table
page.RTE.mutuallyExclusiveClasses = odd,even
# delete all standard settings for the classesAnchor
page.RTE.classesAnchor >
page.RTE.classesAnchor {
externalLink {
class = extlink
type = url
target = _blank
titleText = LLL:fileadmin/private/tscripts/rte_lang.xml:external_link_titleText
# image = fileadmin/templates/Adhurricane_templates/images/ico-extlink.gif
}
internalLink {
class = default
type = page
titleText = LLL:fileadmin/private/tscripts/rte_lang.xml:internal_link_titleText
}
file {
class = doclink
type = file
titleText = LLL:fileadmin/private/tscripts/rte_lang.xml:download_titleText
# image = fileadmin/templates/Adhurricane_templates/images/ico-doclink.gif
}
download {
class = doclink
type = file
titleText = LLL:fileadmin/private/tscripts/rte_lang.xml:download_titleText
}
mail {
class = defaultmail
type = mail
titleText = LLL:fileadmin/private/tscripts/rte_lang.xml:mail_titleText
}
}
page.RTE.default {
# clean pasted text from ms word and equivalents
enableWordClean = 1
# removes automatically added <br /> tags
removeTrailingBR = 1
# removes HTML comment
removeComments = 1
# removes HTML tags specified
removeTags = center, sdfield
# removes HTML tags specified and their content
removeTagsAndContents = style, script
# each style in the css specified can be configured to appear in the style selectboxes
contentCSS = fileadmin/templates/Adhurricane_templates/css/rteContent.css
# configure the main format selectbox
buttons.formatblock {
# only show these items
restrictToItems = p, h2
# configure each item
items {
h2 {
label = Subüberschrift
}
}
}
# shows all CSS-classes defined in the rteContent.css which do not have a tag prefix (eg div.onlyDivStyle would only show up if div was selected in the formatblock)
showTagFreeClasses = 0
# use all custom defined css styles and override the standard-configuration
ignoreMainStyleOverride = 1
# Specifies that Mozilla/Firefox should use style attributes or not. When enabled, Mozilla/Firefox use span tags with style attributes rather than tags such as b, i, font, etc.
useCSS = 0
# show these buttons
showButtons = formatblock, blockstyle, orderedlist, unorderedlist, bold, italic, strong, insertcharacter, image, line, link, unlink, acronym, removeformat, copy, cut, paste, pastetoggle, pastebehaviour, undo, redo, table, tableproperties, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columnproperties, columninsertbefore, columninsertafter, columndelete, columnsplit, cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge, user, findreplace, chMode
# hide these buttons
# hideButtons = emoticon, spellcheck, showhelp, about, textstylelabel, fontstyle, fontsize, showhelp, textcolor, image, bgcolor, strikethrough, underline, inserttag, user, findreplace, about, help
# build the tool bar containing the defined buttons
toolbarOrder = formatblock, blockstyle, bar, bold, italic ,orderedlist, unorderedlist, link, unlink, insertcharacter, image, bar, copy, cut, paste, pastetoggle, pastebehaviour, removeformat, insertcharacter, undo, redo, bar, table, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columninsertbefore, columninsertafter, columndelete, columnsplit, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge, bar, user, findreplace, chMode
keepButtonGroupTogether = 1
keepToggleBordersInToolbar = 1
# show status bar
showStatusBar = 1
# user defined buttons
userElements {
# Category of empty div containers
10 = Leerbereiche
10 {
10 = kleiner Leerbereich
10 {
description = Fügt an der aktuellen Cursor-Position einen kleinen Leerbereich ein
mode = default
content = <div class="empty-block smallspace"></div>
}
20 = großer Leerbereich
20 {
description = Fügt an der aktuellen Cursor-Position einen großen Leerbereich ein
mode = default
content = <div class="empty-block bigspace"></div>
}
}
# Category simulating the <hr /> tag
20 = Trennlinien
20 {
10 = Trennlinie
10 {
description = Fügt an der aktuellen Cursor-Position eine Trennlinie ein
mode = default
content = <div class="line-block"></div>
}
}
}
# restrict the list of class selectors presented by the RTE to the following for the specified tags
buttons.textstyle.tags.span.allowedClasses >
buttons.textstyle.tags.ul.allowedClasses := addToList(content-list, content-listenpunkt)
buttons.blockstyle.tags {
table.allowedClasses := addToList (stripedtable)
tr.allowedClasses := addToList (odd, even)
h2.allowedClasses := addToList(subueberschrift)
}
# classes available in the Insert/Modify link dialogue
buttons.link.properties.class.allowedClasses = linkbutton, internal-link, external-link, mail, download
# Use same processing as on entry to database to clean content pasted into the editor
enableWordClean.HTMLparser < page.RTE.default.proc.entryHTMLparser_db
buttons.link {
# assing css-classes for the different hyperlink types
properties.class.allowedClasses = extlink, doclink, default, defaultmail
page.properties.class {
default = default
required = 1
}
url.properties.class {
default = extlink
required = 1
}
file.properties.class {
default = doclink
required = 1
}
mail.properties.class {
default = defaultmail
required = 1
}
# disable the target selector, the target should have been assign allready automatically by type
targetSelector.disabled = 0
popupSelector.disabled = 1
}
# customization of the server processing of the content - also called 'transformations'.
proc {
# overrule CSS Styled Content's css styles
overruleMode = ts_css
# br tags in the content are assumed to be intentional
dontConvBRtoParagraph = 1
# PRESERVE DIV SECTIONS - DO NOT REMAP TO P
preserveDIVSections = 1
# TAGS ALLOWED OUTSIDE P & DIV
allowTagsOutside = address, article, aside, blockquote, footer, header, hr, h2, nav, section, img
# all these tags will be also written to the database
allowTags (
a, abbr, acronym, address, article, aside, b, bdo, big, blockquote, br, caption, center, cite, code, col, colgroup, dd, del, dfn, dl, div, dt, em, font, footer,
header, h1, h2, h3, h4, h5, h6, hr, i, img, ins, kbd, label, li, link, meta, nav, ol, p, pre, q, samp, sdfield, section, small,
span, strike, strong, style, sub, sup, table, thead, tbody, tfoot, td, th, tr, title, tt, u, ul, var
)
# add css classes to the selectbox which can be assigned to the content selected
allowedClasses := addToList(subueberschrift, content-list, content-listenpunkt, even, odd, stripedtable)
# Make sure we can set rules on any tag listed in allowTags.
denyTags >
# This is a list of additional attributes to keep
keepPDIVattribs = id, title, dir, lang, xml:lang, itemscope, itemtype, itemprop
# ALLOW TO WRITE ABOUT HTML
dontUndoHSC_db = 1
dontHSC_rte = 1
# CONTENT TO DATABASE
entryHTMLparser_db = 1
entryHTMLparser_db {
# Always use the same list of allowed tags.
allowTags < page.RTE.default.proc.allowTags
denyTags >
# AVOID CONTENT BEING HSC'ed TWICE
htmlSpecialChars = 0
tags {
# remap i->em and b->strong
b.remap = strong
i.rempa = em
# remove standard-config for <img /> tag
img >
#img.allowedAttribs = 0
#img.rmTagIfNoAttrib = 1
# CLEAN ATTRIBUTES ON THE FOLLOWING TAGS
span.fixAttrib.style.unset = 1
span.allowedAttribs = id, title, dir, lang, xml:lang, class, itemscope, itemtype, itemprop
span.rmTagIfNoAttrib = 1
p {
allowedAttribs = id, title, dir, lang, xml:lang, class, itemscope, itemtype, itemprop
fixAttrib.align.unset = 1
}
div < .p
hr.allowedAttribs = class
b.allowedAttribs < .span.allowedAttribs
bdo.allowedAttribs < .span.allowedAttribs
big.allowedAttribs < .span.allowedAttribs
blockquote.allowedAttribs < .span.allowedAttribs
cite.allowedAttribs < .span.allowedAttribs
code.allowedAttribs < .span.allowedAttribs
del.allowedAttribs < .span.allowedAttribs
dfn.allowedAttribs < .span.allowedAttribs
em.allowedAttribs < .span.allowedAttribs
i.allowedAttribs < .span.allowedAttribs
ins.allowedAttribs < .span.allowedAttribs
kbd.allowedAttribs < .span.allowedAttribs
label.allowedAttribs < .span.allowedAttribs
q.allowedAttribs < .span.allowedAttribs
samp.allowedAttribs < .span.allowedAttribs
small.allowedAttribs < .span.allowedAttribs
strike.allowedAttribs < .span.allowedAttribs
strong.allowedAttribs < .span.allowedAttribs
sub.allowedAttribs < .span.allowedAttribs
sup.allowedAttribs < .span.allowedAttribs
tt.allowedAttribs < .span.allowedAttribs
u.allowedAttribs < .span.allowedAttribs
var.allowedAttribs < .span.allowedAttribs
# configure table
table {
# remove the resizing-infos added by dragging in the editor
fixAttrib{
style.unset = 1
width.unset = 1
height.unset = 1
}
}
tr {
# remove the resizing-infos added by dragging in the editor
fixAttrib{
style.unset = 1
width.unset = 1
height.unset = 1
}
}
td {
# remove the resizing-infos added by dragging in the editor
fixAttrib{
style.unset = 1
width.unset = 1
height.unset = 1
}
}
}
# REMOVE OPEN OFFICE META DATA TAGS, WORD 2003 TAGS, LINK, META, STYLE AND TITLE 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, link, o:p, sdfield, meta, style, title, 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 {
# 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
tags {
# remap i->em and b->strong
b.remap = strong
i.rempa = em
}
}
}
# proc end
# Use same RTE processing rules in FE
FE.proc < page.RTE.default.proc
}
# front end RTE configuration for the general public
page.RTE.default.FE < page.RTE.default
page.RTE.config.tt_content {
# RTE processing rules for bodytext column of tt_content table, erase settings from other extensions
bodytext >
bodytext {
proc {
overruleMode = ts_css
entryHTMLparser_db.xhtml_cleaning = 1
}
types {
text.proc.overruleMode = ts_css
textpic.proc.overruleMode = ts_css
}
}
}
# the rte of the tt_news should be configured similar
page.RTE.config.tt_news >
page.RTE.config.tt_news < page.RTE.config.tt_content
# RTE Tuning
lib.parseFunc_RTE.nonTypoTagStdWrap >
lib.parseFunc_RTE.nonTypoTagStdWrap {
encapsLines {
addAttributes >
# remove class="bodytext" from <p>
addAttributes.P.class >
addAttributes.DIV.class >
# do not remap <div> to <p>
remapTag >
remapTag.DIV = DIV
# these tags may not be surrounded by <p>
encapsTagList := addToList(cite, div, pre, p, hr, h1, h2, h3, h4, h5, h6, table, tr, td)
}
}
# configure the table
lib.parseFunc_RTE.externalBlocks.table {
# add the alternating row style
stdWrap.HTMLparser.tags.table.fixAttrib.class.list = stripedtable
# if a css class has been assigned to the table remove the 'contenttable' class which comes with css_styled_content
#stdWrap.HTMLparser.tags.table.fixAttrib.class.list >
# surround the whole <tale> with a <div>
stdWrap.innerWrap = <div class="table-container">|</div>
}
# RTE -----------------------------------------------------------------------------------------------------------------------------
aber sicher stimmt da wiedermal die reihenfolge wer, was zur laufzeit überschreibt, oder die angesprochene eigenschaft nicht - very mühsam!
so kann ich doch das table-"objekt" ansprechen
lib.parseFunc_RTE.externalBlocks.table.
welche eigenschaften hat das denn, dieselben von tsref ctable?
bin über hinweise sehr dankbar!!!