Zum Inhalt springen

htmlarea / RTE (Konfiguration) - so gehts

Erstellt am 21. März 2006 · 191 Antworten · letzte Antwort am 28. Februar 2013 · Seite 4 von 10

Tags: Tipp

mendragol ·

Hallo zusammen

Wie kann ich denn die Auswahl beeinflussen die einem fontsize vorgibt? Ich möchte in dieser noch 7 pt eintragen können ohne gleich alles umbauen zu müssen.

Mein bisheriger Code

setup.default.edit_RTE = 1
options.HTMLAreaPluginList = TableOperations, SpellChecker, ContextMenu, SelectColor, TYPO3Browsers, InsertSmiley, FindReplace, RemoveFormat, CharacterMap, QuickTag, InlineCSS, DynamicCSS, UserElements, Acronym
options.HTMLAreaPspellMode = normal
options.RTEkeyList = fontsize,formatblock,bold,italic,underline,left,center,right,orderedlist,unorderedlist,outdent,indent,textcolor,textindicator,link,image,chMode,removeformat,copy,cut,paste,undo,redo,table

Danke und Gruss
Mendragol

ms_k ·

Hallo mendragol,

also um die Schaltfläche Schriftgröße einzublenden einfach das TSconfig Script um fontsize bei showButtons ergänzen:

# Buttons die gezeigt/versteckt werden
showButtons = fontsize, ...

und halt die andern Schaltflächen die du so brauchst (Zeile 67 in Post 1).

Damit erhälst du per Default ein <font size=1> etc. bis 7.

Grüße
ms_k

ms_k ·

Hallo maop,

es gibt eine Option im RTE die nennt sich "Formatierungen entfernen" die könntest du dafür nehmen.

showButtons = removeformat, ..

Einzublenden über den RTE mittel removeformat, aber dann musst erst den Text reinkopieren und kannst dann mit dieser Funktion die Wordfomatierungen entfernen.

Außerdem funktioniert bei mir das Einfügen von Bildern über Drag&Drop nur im IE, nicht im Firefox, oder ist das normal?

mmh noch nie getestet, weder im IE noch 😉

Grüße

Liberation ·

schon mal den post Nr.1 gelesen???

#
## Markup options
#
enableWordClean = 1
removeTrailingBR = 1
removeComments = 1
removeTags = center, sdfield
removeTagsAndContents = style,script

schreibst du rein was du weg haben möchtest, fertig.
z.b. removeTags = center, sdfield, border, font, ...

Muckster ·

Hab auch noch ein Problem:

mit meinem auf der vorherigen Seite geposteten Setup werden immer die Standard-Schriftformatierungen beim speichern entfernt, Also z.B. Fett, Kursiv etc.

<span style="font-weight: bold;">TEST</span>

D.h. Nur der span-tag wird entfernt, nicht der Inhalt.

Finde nur Einstellungen zu Klassen, hoffe mir kann jemand weiterhelfen...

Muckster ·

Auch wenn ich die Tags (also auch span) expliziet erlaube bzw. verbiete passiert das gleiche:

proc {
# Tags erlauben
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, center
		
# Tags verbieten
denyTags = font
.
.
.

Muss doch aber was mit proc zu tun haben...oder? Hier nochmal mein ganzes Setup:

### Spalten ausblenden ###
TCEFORM.tt_content.colPos.removeItems = 1,2,3
mod.SHARED.colPos_list = 0

###RTE:###

## Anchor classes configuration for use by the anchor accessibility feature
RTE.classesAnchor {
	externalLink {
		class = external-link
		type = url
		image = fileadmin/templates/htmlarea/img/external_link.gif
		altText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:external_link_altText
		titleText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:external_link_titleText
	}
	externalLinkInNewWindow {
		class = external-link-new-window
		type = url
		image = fileadmin/templates/htmlarea/img/external_link_new_window.gif
		altText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:external_link_new_window_altText
		titleText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:external_link_new_window_titleText
	}
	internalLink {
		class = internal-link
		type = page
		image = fileadmin/templates/htmlarea/img/internal_link.gif
		altText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:internal_link_altText
		titleText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:internal_link_titleText
	}
	internalLinkInNewWindow {
		class = internal-link-new-window
		type = page
		image = fileadmin/templates/htmlarea/img/internal_link_new_window.gif
		altText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:internal_link_new_window_altText
		titleText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:internal_link_new_window_titleText
	}
	download {
		class = download
		type = file
		image = fileadmin/templates/htmlarea/img/download.gif
		altText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:download_altText
		titleText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:download_titleText
	}
	mail {
		class = mail
		type = mail
		image = fileadmin/templates/htmlarea/img/mail.gif
		altText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:mail_altText
		titleText = LLL:EXT:rtehtmlarea/htmlarea/plugins/TYPO3Browsers/locallang.xml:mail_titleText
	}
}

### RTE Classe des Interface (Ausrichtung)  ###
RTE.classes {
	align-left {
		name = LLL:EXT:rtehtmlarea/htmlarea/locallang_tooltips.xml:justifyleft
		value = text-align: left;
	}
	align-center {
		name = LLL:EXT:rtehtmlarea/htmlarea/locallang_tooltips.xml:justifycenter
		value = text-align: center;
	}
	align-right {
		name = LLL:EXT:rtehtmlarea/htmlarea/locallang_tooltips.xml:justifyright
		value = text-align: right;
	}
}

# Breite des RTE in Fullscreen-Ansicht
TCEFORM.tt_content.bodytext.RTEfullScreenWidth= 90%

### RTE Standard-Config ###
RTE.default {
  ## Zuweisung der CSS-Datei
  contentCSS = fileadmin/templates/htmlarea/htmlarea-edited-content.css
	
  ## Markup options
  enableWordClean = 1
  removeTrailingBR = 1
  removeComments = 1
	removeTags = center, sdfield
	removeTagsAndContents = style, script
	
	# Buttons die gezeigt/versteckt werden
	showButtons = chMode, textstyle, textstylelabel, blockstyle, blockstylelabel, bold, italic, underline, left, center, right, orderedlist, unorderedlist, insertcharacter, line, link, image, removeformat, table, toggleborders, tableproperties, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columninsertbefore, columninsertafter, columndelete, columnsplit, cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge, findreplace, insertcharacter, undo, redo, showhelp, copy, cut, paste
	hideButtons = fontstyle, formatblock, fontsize, strikethrough,lefttoright, righttoleft, textcolor, bgcolor, textindicator, emoticon, user, spellcheck, inserttag, outdent, indent, justifyfull, subscript, superscript, acronym, about

	# Hält die RTE Icons gegroupt zusammen
	keepButtonGroupTogether = 1

	# blendet Statusbar in htmlarea aus
	showStatusBar =  0
	
	# Use stylesheet file rather than the above mainStyleOverride and inlineStyle properties to style the contents (htmlArea RTE only)
	ignoreMainStyleOverride = 1
	
	# zeigt alle CSS-Klassen die in formate.css vorhanden sind
	showTagFreeClasses = 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 = 1

	## Add styles Left, center and right alignment of text in paragraphs and cells.
	inlineStyle.text-alignment (
		p.align-left, h1.align-left, h2.align-left, h3.align-left, h4.align-left, h5.align-left, h6.align-left, td.align-left { text-align: left; }
		p.align-center, h1.align-center, h2.align-center, h3.align-center, h4.align-center, h5.align-center, h6.align-center, td.align-center { text-align: center; }
		p.align-right, h1.align-right, h2.align-right, h3.align-right, h4.align-right, h5.align-right, h6.align-right, td.align-right { text-align: right; }
	)

	# Classes für Links (These classes should also be in the list of allowedClasses)
	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
	}
	
	# Classes: Ausrichtung
	classesParagraph (
		align-left, align-center, align-right, box1
	)

	# Classes: Eigene Stile
	classesCharacter = headline
	classesImage = rte_image
	
	# Do not allow insertion of the following tags
	hideTags = font
	
	# Tabellen Optionen in der RTE Toolbar
	hideTableOperationsInToolbar = 0
	keepToggleBordersInToolbar = 1
	
	# Tabellen Editierungs-Optionen (cellspacing/ cellpadding / border)
	disableSpacingFieldsetInTableOperations = 1
	disableAlignmentFieldsetInTableOperations = 0
	disableColorFieldsetInTableOperations = 1
	disableLayoutFieldsetInTableOperations = 1
	disableBordersFieldsetInTableOperations = 0
	
	# FE RTE configuration (htmlArea RTE only)
	FE < RTE.default
	FE.userElements >
	FE.userLinks >
	
	## Use same processing as on entry to database to clean content pasted into the editor
	enableWordClean.HTMLparser < RTE.default.proc.entryHTMLparser_db

	### Customization of the server processing of the content - also called 'transformations'
	proc {
		# Tags erlauben
		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, center
		
		# Tags verbieten
		denyTags = font
		
		# br wird nicht zu p konvertiert
		dontConvBRtoParagraph = 1
	
		# tags sind erlaubt außerhalt von p, div
		allowTagsOutside = img,hr
	
		# erlaubte attribute in p, div tags
		keepPDIVattribs = align,class,style,id
	
		# List all class selectors that are allowed on the way to the database
		allowedClasses (
			external-link, external-link-new-window, internal-link, internal-link-new-window, download, mail,
			align-left, align-center, align-right, box1, headline
		)

		# html parser einstellungen
		HTMLparser_rte {
			# tags die erlaubt/verboten sind
			allowTags < RTE.default.proc.allowTags
			denyTags < RTE.default.proc.denyTags

			# tags die untersagt sind
			removeTags = font

			# entfernt html-kommentare
			removeComments = 1

			# tags die nicht übereinstimmen werden nicht entfernt (protect / 1 / 0)
			keepNonMatchedTags = 0
		}

		# Content to database
		entryHTMLparser_db = 1
		entryHTMLparser_db {
			# tags die erlaubt/verboten sind
			allowTags < RTE.default.proc.allowTags
			denyTags < RTE.default.proc.denyTags

			# CLEAN TAGS
			noAttrib = b, i, u, strike, sub, sup, strong, em, quote, blockquote, cite, tt, br, center

			rmTagIfNoAttrib = span,div,font

			# htmlSpecialChars = 1

			# align attribute werden erlaubt
			.tags {
				p.fixAttrib.align.unset >
				p.allowedAttribs = class,style,align
	
				div.fixAttrib.align.unset >
	
				hr.allowedAttribs = class
	
				# b und i tags werden ersetzt (em / strong)
				b.remap = strong
				i.remap = em
	
				# img tags werden erlaubt
				img >
			}
		}
	}
}
steffenk ·

Vielleicht hat ja jemand einen Tipp für mich.

Ich hatte die Ummantelung von Tabellenzelleninhalten mit <p> untebunden durch

lib.parseFunc_RTE.externalBlocks.table.HTMLtableCells.default.callRecursive = 0

Dadurch werden aber auch Links unterbunden.

Wie kann ich das so differenzieren, das tatsächlich nur die Paragraphen wegfallen ?

EDIT
Habe die Lösung, allerdings stosse ich ausgerechnet da auf einen Typo3-Bug:

lib.parseFunc_RTE.externalBlocks.table.stdWrap.HTMLparser.removeTags = p

Leider sorgt der Bug dafür, das die schliessenden p-tags enthalten bleiben ...
Habs in der Bugliste vermerkt.

delldog ·

Ich glaube ich hab einen kleinen Fehler im ersten Posting des Threads gefunden:

### align attribute werden erlaubt
 .tags {
       p.fixAttrib.align.unset >

Wenn ich bei mir den Punkt (.) vor "tags" weglasse, wird auch das Attribut align im Tag p gespeichert. Mit dem Punkt wird das Attribut beim Speichern weggeworfen.

Oder liege ich falsch und es gibt einen tieferen Sinn für den Punkt?
Bin noch nicht so 100%ig sattelfest in TS.

Gruss Stephan.

ms_k ·

Hallo delldog,

da liegst du richtig, der Punkt ist überflüssig - macht lustiger weise bei meinem System keinen unterschied. Das align wird trotz .tag[...] gesetzt. Danke 🙂

Viele Grüße
ms_k

pop-atze ·

An dieser Stelle auch von mir ein herzliches Danke an Dich, Karin!
Ich bin genau im richtigen Moment auf Dein Posting gestoßen und es hat mir, wie vielen anderen anscheinend ebenso, eine Menge Nervenschmalz erspart... 😉

Lieben Gruß

steffenk ·

Hi,

ich habe doch noch ein Problem.

jenachdem, wenn man z.B. Leerzeilen einfügt mit weichem Umbruch, erzeugt der RTE bei mir ein leeres div, das zu Layoutproblemen führt, ausserdem ja Quatsch ist:

<div></div>

Weiss jemand, womit das zusammenhängt bzw. wie ich ihm das abgewöhnen kann ?

vielen Dank.

Liberation ·

Leerzeilen erzeugen ein leeres DIV???

Das problem habe ich nicht, habe allerdings auch nicht den code aus dem ersten post übernommen sondern eigenen ts gemacht.

ms_k ·

mmh zwar konkrete Hilfe, aber an der ersten TSconfig sollte es nicht liegen.

Weiche Umbrüche = <br>
Harte Umbrüche = <p></p>

Der Fehler könnte z.B in der normalen TS liegen. hast du irgendwelche

styles.content.[blablah]

umdefiniert !?

Grüße
ms_k

steffenk ·

nein, garnichts.

Ich habe lediglich den Code aus dem ersten post genommen und an meine Bedürfnisse angepasst, was sich auf die Anzeige der Buttons und eigene Klassen beschränkt.

Ich versuch das nochmal genau reproduzierbar zu machen. Gleiches Problem hatte ich auch beim Einfügen aus Word-Dokumenten - selbst das html-cleaning lässt solche Fragmente stehen.

Hille ·

Hallo zusammen,
ja vielen Dank mir hat auch das lesen dieses Postings geholfen.
Im Manual "Handbuch für Redakteure" ist die IE-Einstellung beschrieben.
Gut, habe ich gedacht, gilt auch für Typo3 4.0 mit htmlArea.
Nein, gilt nicht
Lösung:
Temporäre Internetdateien-Einstellungen
Neue Versionen... auf Automatisch stellen
Speicherplatz: muß größer als 32MB sein.
So habe ich es jedenfalls jetzt eingestellt.
Nun geht alles.
Ich hatte schon vermutet, die Einbindung der CSS-Dateien war falsch.
Gruß
Hille

space2063 ·

Hi,

da leider niemand auf die Frage des Mucksters geantwortet hat möchte ich Sie nochmal wiederholen.

Die Grundkonfigration funktioniert wunderbar, jedoch ist auch mir aufgefallen, dass komischerweise span-tags ignoriert werden.

Ich hab die Tags explizit erlaubt, jedoch speichert er diese nicht in der Datenbank.

Hat jemand eine Idee wie man Tags innerhalb von p-Tags explizit erlauben kann, so dass die Standard-Buttons bold und italic funktionieren?

Danke im Voraus,
space2063

space2063 ·

Hi,

ok, nachdem ich mich jetzt fast durch alle Einträge des Forums gequält habe (und das gleiche Problem mehrmals gesehen habe) ... kann ich die Frage präzisieren:

Es scheint, dass span-Tags, die eine class-Tag enthalten explizit über:

<code>
RTE.config.tt_content.bodytext.proc.allowedClasses = irgend_eine_klasse
</code>

erhalten werden könnnen. Das ist auch nicht die Frage. Wie kann man nun span-Tags speichern, die z.B. ein style-Tag besitzen? bzw. wie werden die Einträge, die htmlarea über die Buttons (bold/ italic) selbst einfügt, in der DB gespeichert ... das Gleiche gilt für Farbangaben etc.

MfG,
space2063

space2063 ·

Hey,

ok, nachdem ich ein paar Stunden rumgedockert habe kam nun folgende Lösung bei raus: einfach dieses bisschen an Code hinzufügen *g*

RTE.default.proc {
  # Content to database
  entryHTMLparser_db = 1
  entryHTMLparser_db {
      
  ## align attribute werden erlaubt
  tags {
    #span.fixAttrib.align.unset >
    #span.allowedAttribs = class,style
    span >
  }
}

Der auskommentierte Teil brachte komischerweise keinen Erfolg. Egal zumindest konnte ich mir selbst weiter helfen *freu* (und evtl. anderen Leidensgenossen).

... evtl. macht es Sinn diese Zeile auf der ersten Seite hinzuzufügen(?)

Greetz,
space2063

Footballschlumpf ·

Hallo zusammen,

ich habe mittlerweile alle Foren durch und sämtliche Lösungsansätze getestet, aber folgendes Problem bleibt, bzw. es ergibt sich ein weiteres Kuriosum...

die Definition eigener styles funktioniert und werden im Editor auch brav angezeigt. Nach der Speicherung gehen die für die Formatierung verantwortlichen <span>-tags allerdings verloren...
ändere ich aber die Klasse manuell auf eine default-Klasse, z.B. "important" werden sie gespeichert????? #angry# #angry#

ich könnte mir natürlich nun die drei Standard-Klasse nach meinen Bedürfnissen in meiner .css editieren (was funktioniert), das kann aber nicht der Weisheit letzter Schluss sein.....

Kann das irgendwie sein, dass da irgendwas hardcoded ist?

Ideen?