Zum Inhalt springen

style-attribut aus Blockquote entfernen

Erstellt am 4. Dezember 2010 · 3 Antworten · letzte Antwort am 4. Dezember 2010

Tags: HTML & CSS, Frage

Herbie01 ·

Hallo,

kann mir mal jemand verraten wie ich das Attribut style bei der Ausgabe im FE entferne?

Mein Problem ist, dass ich im RTE einen Text als blockquote auszeichne ohne weitere Angaben. Im FE packt mir Typo3 bzw. der RTE (keine Ahnung wer von beiden das reinrendert) die Angabe style="margin-bottom:0;margin-top:0;" mit hinein.
Das will ich aber nicht. Die Frage ist jetzt an welcher Schraube ich drehen muss damit das nicht mehr geschieht.

NilsBarenbrock ·

Du kannst sämtliche Attribute eines Tags, die du nicht haben willst unterbinden, indem du in der RTE Konfiguration die erlaubten Attribute angibst:

RTE.default {
  proc {
    entryHTMLparser_db = 1
    entryHTMLparser_db {
         tags {
              blockquote.allowedAttribs = id, title, dir, lang, xml:lang, class
              blockquote.fixAttrib.style.unset = 1
         }
    }

    exitHTMLparser_db = 1
    exitHTMLparser_db {
         keepNonMatchedTags = 1
         htmlSpecialChars = 0
    }
}
}

Mit dem codebeispiel oben wird beim Schreiben in die Datenbank festgelegt, dass nur "id, title, dir, lang, xml:lang, class" für blockquote erlaubt sind und die nächste Zeile entfernt ein eventuell vorhandenes stlye Attribut.

Das funktioniert in der Weise für alle html-Tags.

Herbie01 ·

Danke für den Tipp.
Hat aber leider nichts gebracht.

Habe gerade mal in der Datenbank nachgeschaut. Dort steht in der Tabelle tt_content blockquote ohne style-Attribut drin. Also muss das irgendwo beim Parsen fürs FE hinzugefügt werden. Nur habe ich keine Idee wo ich ansetzen kann um das Problem zu beheben.

Herbie01 ·

Habs inzwischen hinbekommen nachdem ich einen Blick in die Datei typo3/sysext/css_styled_content/static/setup.txt geworfen habe.

Dort steht nämlich (man beachte die letzte Zeile):

lib.parseFunc_RTE < lib.parseFunc
lib.parseFunc_RTE {
	//  makelinks >
	# Processing <table> and <blockquote> blocks separately
	externalBlocks = table, blockquote, ol,ul, div
	externalBlocks {
		# The blockquote content is passed into parseFunc again...
		blockquote.stripNL=1
		blockquote.callRecursive=1
		blockquote.callRecursive.tagStdWrap.HTMLparser = 1
		blockquote.callRecursive.tagStdWrap.HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;"

Also habe ich in meine Seitentemplate die folgende Zeile hinzugefügt:

lib.parseFunc_RTE.externalBlocks.blockquote.callRecursive.tagStdWrap.HTMLparser.tags.blockquote.overrideAttribs >

Und siehe da, es funktioniert.
Verstehe zwar momentan nur die Hälfte von dem was die Zeile ggenau bewirkt, aber das Ergebnis passt immerhin.