Zum Inhalt springen

Gridelements und Fluid

Erstellt am 23. Mai 2019 · 4 Antworten · letzte Antwort am 24. Mai 2019

Tags: Gridelements, TYPO3 8, Frage

JPassmann ·

Hallo zusammen,

ich komme beim Thema Gridelements über Fluid nicht mehr weiter. Nachdem ich jetzt alle möglichen Foren und Internetseiten durchwühlt habe, fehlt mir der richtige Ansatz.
Ich habe im Backend zum Beispiel einen Vierspalter definiert und die Columns mit 1-4 deklariert.
Im Setup steht dann

plugin.tx_gridelements_pi1 >
tt_content.gridelements_pi1 >
tt_content.gridelements_pi1 =< lib.contentElement
tt_content.gridelements_pi1 {
	# Fluid Styled Content provides Default only
	# Must be Generic, since there is no Default template
	templateName = Generic
	variables {
		content = COA
		content {
			10 = USER
			10 {
				userFunc = GridElementsTeam\Gridelements\Plugin\Gridelements->main
				setup {
					default < lib.gridelements.defaultGridSetup
					4col < lib.gridelements.defaultGridSetup
					4col {
						#cObject = FLUIDTEMPLATE
						cObject {
							templateName = 4col
							templateRootPaths {
								40 = {$path.private}/Templates/Grids/
							}
						}

Die auskommentierte Zeile hatte ich ebenfalls versucht, sollte aber nicht notwendig sein.

Eigentlich sollte die Datei 4col.html doch jetzt geladen werden?

JPassmann ·

Hallo Teisinger,

vielen lieben Dank für die schnelle Antwort. Ich habe mir Deine Lösung angesehen, muss mich hier aber erst reinarbeiten. Bei mir stimmt ja offenbar das Typoscript nicht, weil die Fluidtemplates gar nicht geladen werden.
Du hast in Deinem Beispiel ID's verwendet. Das funktioniert bei mir auch, allerdings nicht mit den Fluidtemplates. Ich teste nachher noch einmal.

Teisinger ·

Du musst keine IDs verwenden kannst auch Strings verwenden.

Ich hab mich nochmal ein wenig damit beschäftigt - wenn ich das verwende was in der Doku steht bekomme ich es auch nicht hin - entweder er lädt mit die GridFluidTemplates aber nicht die Children bzw. die Children nur als Array (wo ich dann nicht weiß wie ich deren FLUID-Template rendern soll) oder ich bekomm die Children aber ohne GridTemplate...

Meine Lösung ist zwar etwas umständlicher, aber sie funktioniert... 😃

------------------------------------------------------------
Bei deiner Lösung müsste man irgendwie sowas ins GridFluidTemplate schreiben, allerdings funktionieren dann Plugins als Content nicht: "Section "displayMode_" does not exist."

<INCLUDE_TYPOSCRIPT: source="FILE:EXT:gridelements/Configuration/TypoScript/setup.typoscript">
lib.gridelements.defaultGridSetup {
    columns {
        default {
            renderObj = COA
            renderObj {
                # You can use registers to i.e. provide different image settings for each column
                # 10 = LOAD_REGISTER
                20 =< tt_content

                # And you can reset the register later on
                # 30 = RESTORE_REGISTER
            }
        }
    }

    cObject =< lib.contentElement
    # Fluid Styled Content provides Default only
    # Must be Generic, since there is no Default template
    cObject.templateName = Generic
}

tt_content.gridelements_pi1.20.10 =< lib.contentElement
tt_content.gridelements_pi1.20.10 {
    partialRootPaths {
        30 = {$theme.urls.themeResources}Private/Extensions/gridelements/Partials/
    }
    layoutRootPaths {
        30 = {$theme.urls.themeResources}Private/Extensions/gridelements/Layouts/
    }
    templateRootPaths {
        30 = {$theme.urls.themeResources}Private/Extensions/gridelements/Templates/
    }

    templateName.field = tx_gridelements_backend_layout
    templateName.ifEmpty = gridDefault

    dataProcessing {
        10 = GridElementsTeam\Gridelements\DataProcessing\GridChildrenProcessor
        10 {
            default {
                as = children
                # Default options of the grid children processor
                # Change them according to the needs of your layout
                # Read more about it in the TypoScript section of the manual
                options {
                    sortingDirection = ASC
                    sortingField = sorting
                    recursive = 0
                    resolveFlexFormData = 1
                    resolveBackendLayout = 1
                    respectColumns = 1
                    respectRows = 1
                }
            }
        }
    }
}
<f:for each="{children}" as="row" iteration="i">
    <div class="row">
        <f:for each="{row}" as="column" iteration="i">
            <div class="column">
                <f:for each="{column}" as="content" iteration="i">
                    <f:cObject typoscriptObjectPath="tt_content.{content.data.CType}" data="{content.data}" />
                </f:for>
            </div>
        </f:for>
    </div>
</f:for>

Wenn du das irgendwie hinbekommst, lass es mich bitte wissen 🙂