Schlagwort-Archive: DCE

TYPO3 8.7 Update der DCE RTE Flexform Konfiguration bei DCE Elementen aus TYPO3 7.6

Problem:

Durch den Wechsel des TYPO3 HTML Editors auf den CKEditor tritt bei einen DCE Inhaltselement mit einem RTE Element ein Problem auf, dass beim Speichern jedes Mal zusätzliche Leerzeilen zur Ausgabe hinzugefügt werden.

Beispiel der DCE HTML Ausgabe eines RTE Steuerelements mit alter Flexform Config (TYPO3 7.6) nach mehrmaligen speichern:

p><strong>Modernisieren Sie jetzt!&nbsp;</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

Um dieses Problem zu beheben, muss man bei der TYPO3 8.7 DCE Definition das RTE Flexform Config updaten.

DCE RTE Flexform Konfig in TYPO3 7.6
<config>
    <type>text</type>
    <rows>5</rows>
    <cols>30</cols>
    <eval>trim,required</eval>
</config>
<defaultExtras>richtext[]:rte_transform[mode=ts_css]</defaultExtras>

DCE RTE Flexform Konfig in TYPO3 8.7

<config>
    <type>text</type>
    <rows>5</rows>
    <cols>30</cols>
    <eval>trim,required</eval>
    <enableRichtext>1</enableRichtext>
    <richtextConfiguration>default</richtextConfiguration>
</config>

Um das Update für alle DCE RTE Elemente in der Datenbank auf einmal zu erledigen, kann man dies direkt mit folgender SQL-Abfrage tun:

USE dbname;
update tx_dce_domain_model_dcefield set configuration=
'<config>
    <type>text</type>
    <rows>5</rows>
    <cols>30</cols>
    <eval>trim,required</eval>
    <enableRichtext>1</enableRichtext>
    <richtextConfiguration>default</richtextConfiguration>
</config>'
where configuration like '%rte_transform%';

Nach TYPO3 Update auf 8.7 werden bei DCE Inhalts- Elementen „Kopie 1“ oder „Kopie 2“ im Inhalt angezeigt

Die Ursache ist mir noch ein wenig unklar, warum nach dem Update auf TYPO3 8.7 bei kopierten Inhaltselementen des Plugins DCE die Header Spalten der tt_content Tabelle angezeigt werden. Darin befinden sich bei kopierten DCE Elementen die Zeichenfolge “Kopie 1”. Wobei die Zahl bei mehreren Elementen hochgezählt wird. Vorhanden waren die Einträge vor dem Update auf TYPO3 8.7 zwar auch schon, wurden aber nicht angezeigt. Erst nach dem TYPO3 Update haben die kopierten DCE Elemente einen h2 Header mit dem Inhalt “Kopie n”.

Eine Recherche hat zwei Lösungsvorschläge gebracht, die leider für mich nicht in Frage kamen.

Der erste Lösungsvorschlag war eine Typoscript Konfiguration

TCEMAIN.table.tt_content {
disablePrependAtCopy = 1
disableHideAtCopy = 1
}

Diese zeigte bei meiner TYPO3 Seite keine Wirkung. Die Header mit “Kopie 1” wurden immer noch angezeigt. Ich gehe davon aus, dass sich die Typoscript Einstellung nur auf neue kopierte Elemente auswirkt.

Der zweite Lösungsvorschlag war, die bei DCE Inhaltselementen standardmäßig ausgeblendete Spalte “Header” mittels “Sonstige” -> “Vefügbare Objekte” -> “Überschrift(header)” einzublenden und bei allen Inhaltselementen die Headerspalte manuell zu leeren.

Diese Lösung funktioniert zwar prinzipiell, ist aber bei umfangreichen TYPO3 Webseiten sehr aufwendig, da alle Inhaltselemente noch einmal bearbeitet werden müssen.

Nach einem Blick in die tt_content Tabelle der betreffenden TYPO3 Datenbank, kam mir die Idee das Problem auf Datenbankebene zu lösen.

update tt_content set header='' where header like '%Kopie%';

Mit dieser SQL Abfrage werden alle Header Elemente in der in der tt_content Tabelle geleert, die das Muster %Kopie% in der Spalte “header” enthalten. Nach einem Cachelöschen waren die unerwünschten Überschriften wie “Kopie 1” aus dem Inhalt der Webseite verschwunden.