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.
FAQs are only visible for Weblication ai search and editors!
Wie kann ich beim Einfügen in ein WYSIWYG-Feld die Formatierungen aus externen Quellen filtern?
Der Artikel beschreibt, dass Sie beim Einfügen von Inhalten aus externen Quellen (z. B. Internetseiten, Office-Dokumente) Filter nutzen bzw. generell die Formatierungen beim Einfügen herausfiltern können. Dafür werden Filter verwendet, die beim Einfügen ausgeführt werden (über das pasteFilter-Attribut) sowie optional beim Aktualisieren (über das autoFilter-Attribut bzw. den „Filter, der beim Aktualisieren ausgeführt wird“).
Ab welcher Version ist die Nutzung von Filtern beim Einfügen in ein WYSIWYG-Feld verfügbar?
Der Artikel nennt als Nutzbar ab: „Version 21. April 2020“ (Hinweis: Im Text wird auch von aktuellen 2.x Versionen gesprochen).
Was bewirkt das Text-Pflegetag-Attribut openClipboardDialogOnPaste="1" beim Einfügen?
Mit <code class="codeInline">openClipboardDialogOnPaste="1"</code> können Sie definieren, dass beim Einfügen über Strg+V der Einfügendialog geöffnet wird (Zwischenablagebox / gefilterte Maske). Dadurch ist das Einfügen in das WYSIWYG-Feld nur über diesen Zwischenschritt möglich, wobei die Formatierungen herausgelöscht werden.
Ist die Zwischenablagebox (Einfügen nur über gefilterte Maske) standardmäßig aktiviert?
In aktuellen 2.x Versionen ist die Zwischenablagebox in der Standardauslieferung deaktiviert. Das soll Redakteuren ein paar Klicks sparen.
Welche Filter werden beim Einfügen und welche beim Aktualisieren von Textfeldern angewendet?
Unerwünschte Inhalte werden über zwei Filter gesteuert: „Filter, der beim Einfügen ausgeführt wird“ und „Filter, der beim Aktualisieren ausgeführt wird“. Beim Einfügen werden die relevanten Filter ausgeführt; beim Aktualisieren (z. B. Speichern/Zwischenspeichern der Seite) greifen die entsprechenden Filter ebenfalls.
In welcher Reihenfolge werden mehrere Einfüge-Filter angewendet?
Mehrere Filter lassen sich kommagetrennt angeben. Die Filter werden in der Reihenfolge angewandt, wie sie im <code class="codeInline">pasteFilter</code>-Attribut (bzw. über die Projektkonfiguration „Filter, der beim Einfügen ausgeführt wird“) hinterlegt wurden.
Wie wird die Projektkonfiguration „Filter, der beim Einfügen ausgeführt wird“ in den pasteFilter-Wert überführt?
Die Einstellung in der Projektkonfiguration „Filter, der beim Einfügen ausgeführt wird“ befüllt den Wert des Text-Pflegetag-Attributes <code class="codeInline">pasteFilter="..."</code> (also <code class="codeInline">pasteFilter="<Wert aus wysiwyg_pastefilter>"</code>).
Wie werden beim Einfügen die Einstellungen im Text-Element (Fließtext) für aktuelle 2.x Versionen übernommen?
In aktuellen 2.x Versionen ist standardmäßig umgesetzt, dass sich das Text-Element (Fliesstext) die Einstellungen aus der Projektkonfiguration zieht.
Wie kann ich die Filter-Definition im Text-Element (Beispiel) nachsehen bzw. anpassen?
Der Artikel zeigt einen Auszug aus einem Text-Element für die Bearbeitung (z. B. <code class="codeInline">text.wysiwyg.wItem.php</code>). Dort werden u. a. <code class="codeInline">openClipboardDialogOnPaste</code>, <code class="codeInline">pasteFilter</code> (aus <code class="codeInline">wysiwyg_pastefilter</code>) sowie weitere Attribute wie <code class="codeInline">autoFilter</code> (aus <code class="codeInline">wysiwyg_autofilter</code>) gesetzt.
Wofür ist es besonders sinnvoll, beim Einfügen viel aus Internetseiten oder Office-Programmen zu übernehmen?
Das wird ausdrücklich als sinnvoll beschrieben: Wenn viel aus anderen Internetseiten oder Office-Programmen (z. B. Word oder OpenOffice) in Textfelder eingefügt wird, helfen Filter dabei, unerwünschte Inhalte bzw. unerwünschte Formatierungen beim Copy & Paste zu entfernen.
Wie kann ich die Filterung beim Aktualisieren eines Textfeldes steuern?
Die Filterung beim Aktualisieren (z. B. Speichern bzw. Zwischenspeichern der Seite) wird über den Artikel „So definieren Sie automatische Filter für ein WYSIWYG-Textfeld“ beschrieben. Im Kontext des gezeigten Attribut-Sets ist dafür typischerweise „Filter, der beim Aktualisieren ausgeführt wird“ relevant (zugeordnet u. a. über <code class="codeInline">autoFilter</code>).