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

Hat Euch der Artikel weitergeholfen oder gefallen?
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!

Hat Euch der Artikel geholfen oder gefallen?
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste.
Vielen Dank!


Ich bin TYPO3 Freelancer, TYPO3-Entwickler, Web-Entwickler und Frontend-Entwickler. Ich arbeite im und für das Web seit 2004.
Mehr Infos zu der TYPO3 Internet-Agentur INGENIUMDESIGN.

Besucht auch unser TYPO3 Hilfe Forum.

Leave a Reply

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

6 Kommentare

  1. Ich glaube, Dir ist hier ein kleiner Fehler unterlaufen, die Datei liegt unter Resources/Private/Templates/Default.html

    Grüße Lina

  2. 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…

  3. Ja, meistens liegen in den „Layouts“ Ordner noch Dateien mit extra wrap´s !

  4. 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.

  5. 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/
    }
    }

  6. 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

Next ArticleProfitTrailer - Raspberry Pi 3 optimieren und installieren