Zum Inhalt springen

Wieder mal: Eigene CSS-Klassen werden nicht gerendert

Erstellt am 25. Mai 2011 · 1 Antwort · letzte Antwort am 20. Juli 2011

Tags: Frage

nostromo ·

Moin an Alle!

Hoffe, Ihr könnt einem RTE-noob weiterhelfen. Habe schon einige threads hier und auch in anderen Foren abgearbeitet, ebenso das manual für den RTE, bin aber noch auf keinen grünen Zweig gekommen.

Das Problem:
Unter Typo3 4.2.5 mit dem RTEhtmlarea 2.1.6 habe ich es nach langem Gemurkel geschafft, eigene CSS-Klassen einzubinden. Die entsprechenden tags (p, span) werden auch korrekt ausgezeichnet in der Datenbank gespeichert - wenn ich das entsprechende Inhaltselement speichere und wieder aufmache, bleibt meine css-Formatierung erhalten und auch wenn ich mir die HTML-Ansicht im RTE anschaue, finde ich meine tags so wieder, wie ich das gerne hätte.

Nur: Im Frontend wird nix dergleichen gerendert. Hinter den p-tags steht dann wieder class='bodytext', die span-Tags verschwinden ganz, was ja aufgrund von

rmTagIfNoAttrib = span,div,font

auch logisch wäre, wenn die css-Klassen verschütt gehen.

Bestimmt habe ich irgendein 'allow' oder so was für meine css-Klassen vergessen, aber ich weiß nicht, wie ich das TS anpassen muss, damit es klappt.

Hier meine TS-Config, basierend auf http://ug.typo3-nrw.de/typo3-dynamic_css.html :

RTE.default.contentCSS = fileadmin/backend/css/rte.css
RTE.default.useCSS = 1
RTE.default.enableWordClean = 1
RTE.default.disableEnterParagraphs = 0

# disable unnecessary buttons
RTE.default.showbuttons = *
RTE.default.hideButtons = fontstyle, fontsize, lefttoright, righttoleft

# disable h1 because page title is h1 already
RTE.default.hidePStyleItems = h1

# configure rte.default
RTE.default.showTagFreeClasses = 1
RTE.default.classesPararaph = artikeleileitung, align-left, align-center, align-right
RTE.default.classesCharacter = uppercase, smallcaps, spaced1px, spaced2px, important, name-of-person, detail
RTE.default.classesImage = hellgrauerRand
RTE.default.classesAnchor = intern, extern, mailto
RTE.config.tt_content.bodytext.proc.allowedClasses = artikeleinleitung, uppercase, smallcaps, spaced1px, spaced2px, important, name-of-person, detail, align-left, align-center, align-right, hellgrauerRand
RTE.default.showStatusBar = 1

# configure transformations
RTE.default.proc {
	# TRANSFORMATION METHOD
	overruleMode = ts_css
	# LINES CONVERSION
	dontConvBRtoParagraph = 1
	# TAGS ALLOWED OUTSIDE P & DIV
	allowTagsOutside = img,hr
	# TAGS ALLOWED
	allowTags = table, tbody, tr, th, td, h1, h2, h3, h4, h5, h6, div, p, br, span, ul, ol, li, re, blockquote, strong, em, b, i, u, sub, sup, strike, a, img, nobr, hr, tt, q, cite, abbr, acronym
	# TAGS DENIED
	denyTags = font
	# ALLOWED P & DIV ATTRIBUTES
	keepPDIVattribs = align,class,style
	# CONTENT TO RTE
	HTMLparser_rte {
		# TAGS ALLOWED
		allowTags < RTE.default.proc.allowTags
		removeTags = font
		# DO NOT REMOVE UNMATCHED TAGS
		keepNonMatchedTags = 0
	}
	# CONTENT TO DATABASE
	entryHTMLparser_db = 1
	entryHTMLparser_db {
		#XHTML COMPLIANCE
		xhtml_cleaning = 1
		#CLEAN TAGS
		noAttrib = b, i, u, strike, sub, sup, strong, em, quote, blockquote, cite, tt, br, center
		tags.hr.allowedAttribs = class
		#REMAP B AND I TAGS
		tags.b.remap = strong
		tags.i.remap = em
		rmTagIfNoAttrib = span,div,font
		htmlSpecialChars = 1
	}
}

Dazu meine css-Datei:

/*	these classes to be shown in rte		*/

p.artikeleinleitung
{
	text-transform		: uppercase;
	font-size		: 1.2em;
	line-height		: 2em;
	text-align		: justify;
	letter-spacing		: 1px;
}

p.align-left
{
	text-align		: left;
}

p.align-center
{
	text-align		: center;
}

p.align-right
{
	text-align		: right;
}

span.uppercase
{
	text-transform		: uppercase;
}

span.smallcaps
{
	font-variant		: small-caps;
}

span.spaced1px
{
	letter-spacing		: 1px;
}

span.spaced2px
{
	letter-spacing		: 2px;
}

span.important
{
	font-weight		: bold;
	font-style		: italic;
}

span.name-of-person
{
	text-transform		: uppercase;
	font-weight		: bold;
}

span.detail
{
	font-style		: italic;
}

img.hellgrauerRand
{
	border			: 1px solid rgb(200,200,200);
	padding			: 10px;
	background-color	: rgb(245,245,245);
}

Ich nehme jeden zweckdienlichen Hinweis mit Jubel auf. Wenn es eine ganz einfache, vielzitierte Lösung gibt und ich nur zu doof war, sie zu finden - Schmutz und Dreck und kleine Steine über mich - aber bitte postet mir den Link dahin.

Vielen Dank erst mal!

Hille ·

Moin....
so aus dem Bauch heraus:

#- wenn ein table eine class hat, wird diese verwendet, sonst class=contenttable
   lib.parseFunc_RTE.externalBlocks.table.stdWrap.HTMLparser.tags.table.fixAttrib.class.list >


#- Die Klasse class="bodytext" von den <p> Tags entfernen:
   lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class >

Gruß
Hille