TYPO3 – DCE Frames entfernen
Wer von Euch in der TYPO3 8.6.x Version die Extension: DCE verwendet, wird bei allen Elementen einen Rahmen / Frame als Wrap erhalten, obwol Ihr in der Vorlage im Fluid: <f:layout name=“None“ /> stehen habt.
Der Frame kommt auch nicht von der Ext: DCE sondern von dem Fluid_Content_Styles, hier können wir nun eine kleine FLUID-IF-Abfrage in das Default.html Template einbauen:
Lagert dazu folgende Datei aus:
typo3_src-8.7.8/typo3/sysext/fluid_styled_content/Resources/Private/Layouts/Default.html
Und tragt nun folgenden Code dort ein:
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true"> <f:spaceless> <f:if condition="{data.frame_class} != none"> <f:then> <f:if condition="{data.tx_dce_dce}"> <f:then> <f:if condition="{data._LOCALIZED_UID}"> <a id="c{data._LOCALIZED_UID}"></a> </f:if> <f:render section="Before" optional="true"> <f:render partial="DropIn/Before/All" arguments="{_all}" /> </f:render> <f:render section="Header" optional="true"> <f:render partial="Header/All" arguments="{_all}" /> </f:render> <f:render section="Main" optional="true" /> <f:render section="Footer" optional="true"> <f:render partial="Footer/All" arguments="{_all}" /> </f:render> <f:render section="After" optional="true"> <f:render partial="DropIn/After/All" arguments="{_all}" /> </f:render> </f:then> <f:else> <div id="c{data.uid}" class="frame frame-{data.frame_class} frame-type-{data.CType} frame-layout-{data.layout}{f:if(condition: data.space_before_class, then: ' frame-space-before-{data.space_before_class}')}{f:if(condition: data.space_after_class, then: ' frame-space-after-{data.space_after_class}')}"> <f:if condition="{data._LOCALIZED_UID}"> <a id="c{data._LOCALIZED_UID}"></a> </f:if> <f:render section="Before" optional="true"> <f:render partial="DropIn/Before/All" arguments="{_all}" /> </f:render> <f:render section="Header" optional="true"> <f:render partial="Header/All" arguments="{_all}" /> </f:render> <f:render section="Main" optional="true" /> <f:render section="Footer" optional="true"> <f:render partial="Footer/All" arguments="{_all}" /> </f:render> <f:render section="After" optional="true"> <f:render partial="DropIn/After/All" arguments="{_all}" /> </f:render> </div> </f:else> </f:if> </f:then> <f:else> <a id="c{data.uid}"></a> <f:if condition="{data._LOCALIZED_UID}"> <a id="c{data._LOCALIZED_UID}"></a> </f:if> <f:if condition="{data.space_before_class}"> <div class="frame-space-before-{data.space_before_class}"></div> </f:if> <f:render section="Before" optional="true"> <f:render partial="DropIn/Before/All" arguments="{_all}" /> </f:render> <f:render section="Header" optional="true"> <f:render partial="Header/All" arguments="{_all}" /> </f:render> <f:render section="Main" optional="true" /> <f:render section="Footer" optional="true"> <f:render partial="Footer/All" arguments="{_all}" /> </f:render> <f:render section="After" optional="true"> <f:render partial="DropIn/After/All" arguments="{_all}" /> </f:render> <f:if condition="{data.space_after_class}"> <div class="frame-space-after-{data.space_after_class}"></div> </f:if> </f:else> </f:if> </f:spaceless> </html>
Damit haben wir nun eine if-Abfrage eingbunden, wenn es ein DCE Element gibt, dann nimm auch keinen div-Container.
Eure Meinung zu dem Artikel ist gefragt! Schreibt mir ein Kommentar
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!
Lina Wolf
Ich glaube, Dir ist hier ein kleiner Fehler unterlaufen, die Datei liegt unter Resources/Private/Templates/Default.html
Grüße Lina
chriskapeller
Hi Sebastian,
klappt das mit der aktuellen TYPO3 9.5.4 Version auch? Ich hab den Code eingebaut, jedoch werden die Frame Classen immer noch gerendert? Muss ich noch was beachten?
Danke vielmals…
Sebastian
Ja, meistens liegen in den „Layouts“ Ordner noch Dateien mit extra wrap´s !
André L
Bei DCE-Container Elementen kommt dieser DIV-Wrap aus der Datei: typo3conf/ext/dce/Resources/Private/Templates/DceContainerElement.html
Hat mich einige Zeit gekostet das zu finden.
David Hämmerle
Ups, bzw das hier:
Wurde ja in Version 8! von lib.fluidContent auf lib.contentElement geändert
lib.contentElement {
layoutRootPaths {
10 = EXT:???/Resources/Private/Templates/Extensions/FluidContent/Layouts/
}
}
David Hämmerle
Danke, super Sache!
Hier noch mein TypoScript falls es jemand brauchen kann:
plugin.tx_fluid_styled_content {
view {
layoutRootPaths {
10 = EXT:???/Resources/Private/Templates/Extensions/FluidContent/Layouts/
}
}
}
lg