Zum Inhalt springen

RTE Table nimmt Stile nicht an

Erstellt am 20. Mai 2009 · 4 Antworten · letzte Antwort am 25. Mai 2009

Tags: Frage

TGrafik ·

Hallo,

ich habe im RTE einen Stil für Tabellen angelegt, welchen ich auch ohne weiteres im RTE auswählen kann. In der Fußzeile und ohne RTE wird der Stil übernommen. Wenn ich mir die Seite dann anschaue, ist der Stil verschwunden und wird mit "contenttable" überschrieben. Wie kann ich das verhindern?

Thomas

Andrea_Herzog ·

ungefähr so:
Das hier steht im TS Config, such dir die Stelle mit den Tabellen

RTE.classes {
	
	 # ACHTUNG: wegen eines Fehlers in Safari _MÜSSEN_ die Klassen in 
	 # konsequenter Kleinschreibung definiert werden!!
     
	 # Blockstile
	 

	 csc-frame-indent {
	   name = Einzug
	   value =
	 }
     
	 csc-frame-frame1 {
	   name = Rahmen einfach
	   value = 
	 }
     
    
	 align-left {
	   name = linksbündiger Text
	   value =
	 }
	 align-right {
	   name = rechtsbündiger Text
	   value =
	 }
	 align-center {
	   name = zentrierter Text
	   value =
	 }
	 kleinertext {
	   name = Textblock: kleine Schrift
	   value = 
	 }
	 grossertext {
	   name = Textblock: große Schrift
	   value = 
	 }
   
   zitatbox {
   name = zitatbox
   value =
   }
   
     
     
	 # Tabellenstile, kann in Tabelleneigenschaften ausgewaehlt werden
     
	 contenttable {
	   name = Mit Rahmen
	   value =
	 }
	 contenttable2 {
	   name = Mit Linien
	   value =
	 }
     
	 layout {
	   name = unsichtbare Layouttabelle
	   value =
	 }
     
	 # Textauszeichnungen fuer Texte nicht fuer Absaetze
     
	 serifen {
	   name = Serifenschrift
	   value = font-family:georgia
	 }
	 starkebetonung {
	   name = Farbe, starker Kontrast
	   value = color: #aa0000
	 }
	 betonung {
	   name = Farbe, geringer Kontrast
	   value = color: #1a4c76
	 }
	 hellgrau {
	   name = Hellgrauer Text
	   value = color: #aaaaaa
	 }
	 dunkelgrau {
	   name = dunkelgrauer Text
	   value = color:#666666
	 }
}


RTE.default {

	#defaultLinkTarget =  
	showButtons = *
	hideButtons ( 
		lefttoright, righttoleft, formattext, bidioverride, big,
		citation, definition, insertedtext, italic, keyboard,  
		monospaced, sample, small, span, strikethrough, 
		variable, user, bold, underline, fontstyle, fontsize, 
		blockquote, insertparagraphbefore, insertparagraphafter,
		spellcheck, inserttag, copy, cut, paste,
		justifyfull, textcolor, bgcolor, emoticon, blockquote
	)
	## selten genutzte Tags in der Absatzpalette verbergen
	hidePStyleItems = pre,address,h5,h6,div
	# CSS-Datei für den RTE - einfach die Haupt-CSS-Datei übernehmen
	contentCSS=fileadmin/atestbereich/styles/standard.css
       # contentCSS=fileadmin/atestbereich/styles/rtetsconfig.css   
  removeTags = blockquote
  
	proc {	 
		# das ist das Problem - es werden nicht alle anderen Klassen entfernt. 
		# offenbar wirkt diese Angabe nicht wie gewünscht - verm. ein Bug
		# drin sein muss es aber, sonst werden die Klassen nicht im RTE gezeigt. 
		allowedClasses (
			align-left,align-center,align-right,
			csc-frame-indent,csc-frame-frame1,
			kleinertext, grossertext, 
			contenttable,contenttable2, layout,
			external-link, external-link-new-window, internal-link, internal-link-new-window, download, mail,
			component-items, action-items,
			component-items-ordered, action-items-ordered,
			serifen, starkebetonung, betonung, hellgrau, dunkelgrau, zitatbox
			)
     
		
		# hier werden die erlaubten Attribute der Tags geregelt. 
		
	
		
		
		entryHTMLparser_db = 1
		entryHTMLparser_db {
        
      
		    tags {
				# Definition, welche Klassen und sonst. Attribute erlaubt sind
				# Nötig, weil allowedClasses nicht funktioniert. 
				p {
					# erlaubte Attribute
					allowedAttribs = id, title, dir, lang, xml:lang, class
					# align und style-Attribute werden entfernt
					fixAttrib.align.unset = 1
					fixAttrib.style.unset = 1
					# erlaubte Klassen, alle anderen werden entfernt
					# ACHTUNG: das erste Komma ist wichtig. 
					fixAttrib.class.list (
						,	csc-frame-indent,csc-frame-frame1, align-left, align-right, align-center, kleinertext, grossertext, zitatbox
					)
					fixAttrib.class.removeIfFalse = 1
        
				}
				div < .p
				h1  < .p
				h2  < .p
				h3  < .p
				h4  < .p
				h5  < .p
				h6  < .p
				ul < .p
				ol < .p
				li < .p
				dfn < .p
				pre < .p
			#	blockquote < .p
      
        
        
        
        
        preserveTables = 1
        
				table {
					allowedAttribs = id, title, dir, lang, xml:lang, class
					fixAttrib.align.unset = 1
					fixAttrib.style.unset = 1
					fixAttrib.class.list (
						, contenttable,contenttable2, layout
					)
					fixAttrib.class.removeIfFalse = 1	
				}
				td {
					allowedAttribs = id, title, dir, lang, xml:lang, class
					fixAttrib.align.unset = 1
					fixAttrib.style.unset = 1
					fixAttrib.class.list (
						, 	align-left, align-right, align-center
					)
					fixAttrib.class.removeIfFalse = 1
				}
				th < .td
				hr < .td
			
				span {
					allowedAttribs = id, title, dir, lang, xml:lang, class
					fixAttrib.align.unset = 1
					fixAttrib.style.unset = 1
					fixAttrib.class.list (
						, serifen, starkebetonung, betonung, hellgrau, dunkelgrau,
					)
					fixAttrib.class.removeIfFalse = 1
				}
				a {
					allowedAttribs = id, title, dir, lang, xml:lang, class, href, name
					fixAttrib.align.unset = 1
					fixAttrib.style.unset = 1
					fixAttrib.class.list (
						, external-link, external-link-new-window, internal-link, internal-link-new-window, 
					)
					fixAttrib.class.removeIfFalse = 1
				
				}
				b.remap = strong
				i.remap = em
			}
			
			# aus hygienischen Gründen werden Tags ohne Attribute entfernt
			rmTagIfNoAttrib = span,div,a
		}
		
		
	}

	# nur Klassen mit Tags erlauben/verbieten. z. B. : p.klasse {border:1px solid #ccc} 
	showTagFreeClasses=0

	# hier wird definiert, welche Klassen den Redakteuren zur 
	# Verfügung gestellt werden: die vorhandenen Klassen für die 
	# Zeichenformatierung werden hier ausgeschaltet:

	classesParagraph (
		csc-frame-indent,csc-frame-frame1, kleinertext, grossertext, zitatbox
		)
   
	classesCharacter (
		serifen, starkebetonung, betonung, hellgrau, dunkelgrau, 
		)
		
	# Klassendefinition für die gesamte Tabelle
	classesTable = contenttable,contenttable2, layout

	# Klassendefinition für die einzelnen Zellen
	# das kann für tr, thead, tbody ebenfalls gemacht werden
	# classesTD = rot1, hellgrau1, dunkelgrau1
	# fehlen noch. 
	
	# Klassen für die Links
	classesLinks = external-link, external-link-new-window, internal-link, internal-link-new-window, download, mail

	classesAnchor = external-link, external-link-new-window, internal-link, internal-link-new-window, download, mail
		classesAnchor.default {
		page = internal-link
		url = external-link-new-window
		file = download
		mail = mail
	}
}

# Mit dem folgenden Abschnitt ist es möglich, unmittelbar beim Einkopieren aus 
# der Zwischenablage den Code bereinigen zu lassen, also bereits vor dem Speichern; 
# Leider ist es in den Voreinstellungen praktisch unkonfiguriert, deshalb muss man hier 
# viel selbst erledigen. Man kann den HTMLParser der WordClean-Funktion bis ins Detail 
# konfigurieren. 

# Diese Konfiguration unterscheidet sich von RTE.default.proc !
# Es wird hier viel mehr entfernt - über die Zwischenablage können keine korrekten Klassen 
# kommen, deshalb werden alle entfernt. 

RTE.default.enableWordClean.HTMLparser {
	allowTags (
		a, abbr, acronym, address, b, bdo, big, br, caption, center, cite, code, col, 
		colgroup, del, dfn, div, em, h1, h2, h3, h4, h5, h6, hr, i, img, ins, kbd, li, link, 
		ol, p, pre, q, samp, sdfield, small, strike, strong, sub, sup, table, thead, tbody, tfoot, 
		td, th, tr, tt, u, ul, var, span
    #blockquote,
		)
	tags {
		p {
			allowedAttribs = id, title, dir, lang, xml:lang, class
		   	fixAttrib.align.unset = 1
		   	fixAttrib.style.unset = 1
        
		   }
		div < .p
		h1  < .p
		h2  < .p
		h3  < .p
		h4  < .p
		h5  < .p
		h6  < .p
		table < .p
		thead < .p
		tbody < .p
		tfoot < .p
		th < .p
		tr < .p
		td < .p
		caption < .p
		span < .p
		ul < .p
		ol < .p
		li < .p
		dfn < .p
		hr < .p
		strong < .p
		em < .p
		del < .p
		q < .p
		code < .p
		#blockquote < .p
		b < .p
		i < .p
		sub < .p
		sup < .p
		hr  < .p
		pre < .p
		a  {
			# entfernt die Anker aus Word-Dokumenten 
			# und die Style-Attribute, die Safari sonst in die Links schreibt. 
			allowedAttribs = id, title, dir, lang, xml:lang, class, href
		   	fixAttrib.style.unset = 1
		}
	}
	# das a ist neu hier, für die Anker aus Word
	rmTagIfNoAttrib = span,div,a
	removeTags = center, font, o:p, sdfield, strike, u
	# das brauchts, weil Safari sonst sogar auf br das style-Atribut setzt
	noAttrib = br
}



TCEFORM.tt_content {
  # Header ausblenden
  header_layout.removeItems = 1
  # Header mit anderem Namen versehen
  header_layout.altLabels.0 = 1. Ebene H1
  header_layout.altLabels.2 = 2. Ebene H2
  header_layout.altLabels.3 = 3. Ebene H3
  header_layout.altLabels.4 = 4. Ebene H4
  header_layout.altLabels.5 = 5. Ebene H5
  
  # Layout mit anderem Namen versehen
  layout.altLabels.0 = Standard
  layout.altLabels.1 = Layoutvariante 1
  layout.altLabels.2 = Layoutvariante 2
  layout.altLabels.3 = Layoutvariante 3
  
  # Tabellen-Direktformate ausschalten
  table_bgColor.disabled = 1
  table_border.disabled = 1
  table_cellspacing.disabled = 1
  table_cellpadding.disabled = 1
  
  # Diverse weitere Formate ausschalten
###########  colPos.disabled = 1
  
   rte_enabled.disabled = 1
}

Und das hier im Setup der Rootseite

#RTE für Tabellen
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
          }
   } 

}
TGrafik ·

Hallo Andrea,

danke für das ausführliche Script. Wenn ich das richtig sehe, ist der obere Part für die Bereitstellung der einzelnen Klassen, die dann ja über CSS definiert werden. Der untere Part sorgt dann dafür, dass diese Klassen übergeben werden.
Da ich meine angelegte Klasse wie gesagt im RTE auswählen kann, habe ich mal nur den unteren Part in das Setup kopiert. Hat aber nicht geholfen. Muss doch noch was aus dem oberen Script mit rein? Oder liegt das Problem doch eher daran, dass irgendwo der stdWrap = contenttable noch ausgeschalten werden muss?

Gruß
Thomas

TheFreeman ·

Hallo zusammen.

Meine Stile werden nach jedem speichern wieder entfernt.
Obwohl ich mich nach dem obigen Script richte. Hab ich was vergessen?

Mein TSconfig

###########################
# CSS-Styles im RTE ändern
###########################
RTE.default.contentCSS = uploads/tf/rte_styles.css
RTE.default.classesCharacter := addToList (
	textblock_140_grau_rotelinie, textblock_140_grau_gelbelinie
)
RTE.default.classesParagraph := addToList (
	textblock_140_grau_rotelinie, textblock_140_grau_gelbelinie
)
RTE.default.proc.allowedClasses := addToList (
	textblock_140_grau_rotelinie, textblock_140_grau_gelbelinie
)
RTE.default.proc.classesParagraph := addToList (
	textblock_140_grau_rotelinie, textblock_140_grau_gelbelinie
)
RTE.default.proc {
	entryHTMLparser_db = 1
	entryHTMLparser_db {
		tags.p {
			allowedAttribs = id, title, dir, lang, xml:lang, class
			fixAttrib.align.unset = 1
			fixAttrib.style.unset = 1
				# Das Komma am Anfang MUSS sein!!!!
			fixAttrib.class.list (
                        	,textblock_140_grau_rotelinie, textblock_140_grau_gelbelinie
			)
			fixAttrib.class.removeIfFalse = 1
		}
	}
}
RTE.default.showTagFreeClasses = 1

Mein CSS:

.textblock_140_grau_rotelinie
	{
	height: 140px;
	border-bottom: 5px solid #802421;
	background-color: #CCCCCC;
	}
	
.textblock_140_grau_gelbelinie
	{
	height: 140px;
	border-bottom: 5px solid #FFC700;
	background-color: #CCCCCC; 
	}

Kann mir bitte jemand weiterhelfen?
Danke schon Mal.

Gruß,
Daniel