So nutzen Sie Filter für das Einfügen in ein WYSIWYG-Feld

Nutzbar ab: Version

Dieser Artikel beschreibt, wie Sie vorgehen können, um beim Einfügen von Inhalten aus externen Quellen (Internetseiten, Office-Dokumente, etc.) einen Filter nutzen können bzw. generell die Formatierungen filtern können.

Projektkonfiguration - Texte
Projektkonfiguration - Texte

Über das Text-Pflegetag-Attribut openClipboardDialogOnPaste="1" können Sie definieren, dass beim Einfügen über Strg+V der Einfügendialog geöffnet wird (Zwischenablagebox / gefilterte Maske). Ein Einfügen von kopierten Inhalten in ein WYSIWYG-Feld ist somit nur über diesen Zwischenschritt möglich, über welchen die Formatierungen rausgelöscht werden.

Aktuelle BASE 2.x Versionen sind standardmäßig so umgesetzt, daß sich das Text-Element (Fliesstext) die Einstellungen aus der Projektkonfiguration zieht (siehe nebenstehender Screen).  Die Zwischenablagebox ("Einfügen nur über gefilterte Maske ermöglichen") ist in der Standardauslieferung deaktivert, damit ein Redakteur sich ein paar Klicks sparen kann. Unerwünschte Inhalte beim Kopieren und Einfügen (Copy & Paste) werden über die Filter "Filter, der beim Einfügen ausgeführt wird" und "Filter, der beim Aktualisieren ausgeführt wird" gemäß dem eingestellten Wert gefiltert. Die Filter werden in der Reihenfolge angewandt, wie diese im pasteFilter-Attribut hinterlegt wurden.
Dies macht z.B. in den Fällen Sinn, wenn viel aus anderen Internetseiten oder Office-Programmen (Word, OpenOffice, etc.) in die Textfelder eingefügt wird.

Die Einstellung in der Projektkonfiguration zu "Filter, der beim Einfügen ausgeführt wird" befüllt den Wert des Text-Pflegetag-Attributes pasteFilter="". Diese Werte entscheiden, welche Filter beim Einfügen über die Zwischenablage ausgeführt werden. Mehrere Filter lassen sich kommagetrennt angeben. Welche Filter Sie einsetzen können und was diese bedeuten, wird über die weiterführenden Links im Artikel "Definition und Bedeutung der WYSIWYG-Textfilter" beschrieben.

Im Weblic® "Fliesstext" sieht die Definition standardmäßig in aktuellen BASE 2.x Versionen (bzw. aktuelles Fliesstext-Weblic® der Version 2.x) wie folgt aus:

Auszug aus einem Text-Element für die Bearbeitung (z.B. text.wysiwyg.wItem.php)

...
<xsl:variable name="openClipboardDialogOnPaste"><xsl:choose><xsl:when test="php:functionString('wVariables::getValue', 'open_clipboard_dialog_on_paste', '/[IHR-LAYOUT-PROJEKT]') = 'yes'">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable>
<!--web:text:start openClipboardDialogOnPaste="<xsl:value-of select="$openClipboardDialogOnPaste" />" pasteFilter="<xsl:value-of select="php:functionString('wVariables::getValue', 'wysiwyg_pastefilter', '/[IHR-LAYOUT-PROJEKT]')"/>" autoFilter="<xsl:value-of select="php:functionString('wVariables::getValue', 'wysiwyg_autofilter', '/[IHR-LAYOUT-PROJEKT]')"/>" wysiwygFunctions="<xsl:value-of select="wd:fragment[@id = 'wysiwygFunctions']/text()"/>" editor="wysiwyg" inputStyle="" outerStyle=""--><xsl:value-of disable-output-escaping="yes" select="wd:fragment[@id = 'text']"/><!--web:text:stop-->
...
Wie Sie beim Aktualisieren des Textfeldes (z.B. Speichern bzw. Zwischenspeichern der Seite) Texte filtern, wird über den Artikel "So definieren Sie automatische Filter für ein WYSIWYG-Textfeld" (siehe weiterführende Informationen) beschrieben.