Zum Inhalt springen

Eigene Contentelemente mit Fluidtemplates

Erstellt am 1. Oktober 2013 · 7 Antworten · letzte Antwort am 10. Oktober 2013

Tags: TYPO3 6.x, Frage

audi_s ·

Hallo,
ich hatte bisher TV eingesetzt und war da sehr glücklich über die FCEs.
Die Nachteile sind mir inzw. bewusst und ich stelle gerade alles um auf Fluidtemplating.
Hier nutze ich (bzw. teste gerade) Gridelements und DCE.

Was ich noch nicht zurfriedenstellend lösen konnte:
Ich möchte "FCEs" (also eigene Inhaltselemente) erstellen können, in denen ich wiederum Container für Inhaltselemente einbinde, also ähnlich wie bei einer Aufteilung in mehrere Spalten, nur dass ich das für andere Dinge nutzen möchte.

Gibt es hier einen guten und sauberen Ansatz?
Ich könnte mir auch eine Lösung über eine Extbase/Fluid Extension vorstellen, wenn das so möglich ist.

Wichtig wären mir gute Anleitungen/Tutorials, so dass man das gut nachvollziehen kann.

Vielen Dank für Eure Hilfe!

mischa ·

Hi,

wir haben bis dato immer folgendes gemacht:

1. Für Mehrspalter verwenden wir Gridelements. Das geht ja hervorragend.
2. Für Sonderlösungen, wie wir sie bei TV mit Sonderfeldern gelöst haben, kann man bei GE auch Flexforms angeben (z.B. Auswahl einer Hintergrundfarbe, Position bestimmen, Bilder angeben e.a.)
3. Für spezielle Spezialfälle wie Accordions aus Inhaltselementen verschachteln wir manchmal GE-Elemente. Dann gibt es eins für außenrum und für jeden Accordiontab ein eigenes, in das die Inhaltselemente eingefügt werden.
4. Alles andere wird bei uns über Plugins abgefertigt.

audi_s ·

Danke für die schnelle Antwort.

zu Punkt 3.) hast Du zufällig irgeindeinen Link, wo das gezeigt wird?
zu Punkt 4.) hast Du 'nen Plan, ob ich diese Container auch über eine Extension realisieren kann bzw. wie?

Danke :-)

typix ·

Hallo,

warum so kompliziert? Gridelements haben sich seit TYPO3 6.0 CMS etwas überlebt...

1) Erstelle in TYPO3 6.x einfach einen Systemordner (kann auch die Allg. Datensatzsammlung sein)
2) Geh auf den SysOrdner und klicke auf den Icon Neues Inhaltselement
3) In der Auswahl klickst Du auf Backend-Element
4) Das BE-Element bekommt einen Namen und wird über einen Konfigurationsassistenten wie bei gridelements zusammengestellt (Icon rechts oben neben Konfiguration)
5) BE-Element speichern
6) Das BE-Element kann dann jeder Seite in Seiteneigenschaften/Erscheinungsbild zugeordnet werden. Erstellt Du mehrere BE-Elemente (1 Spalte, 2 Spalten...) kann man den Seiten direkt aus dem BE ein jeweils anderes Layout zuordnen. Dazu braucht es nur noch ein bißchen TS...

Im Ergebnis kann das dann so aussehen (Die Seite ist noch im Aufbau. Wer Fehler findet, darf sie behalten) 🙂

http://www.projectenmacher.com/startseite

Viel Erfolg!

mischa ·

Jahaha, das mit den BE-Layouts gilt dann aber nur für das gesamte Template, oder?

Mit den Grids kann man ja auf einer Seite mit einer Spalte erst Text über die gesamte Seite laufen lassen, dann in zwei Spalten und wieder über die gesamte Seite. (in beliebiger Reihenfolge)
Auch kann man mit Grids hervorragend Accordions oder Tabs als Inhaltselemente basteln.

Oder habe ich da was verpeilt? Wenn es da was neues gibt, das ich noch nicht kenne, dann bin ich auch neugierig wie eine Katze darauf. 🙂

typix ·

Hallo mischa,

Du hast offensichtlich Recht und vielleicht auch nicht...

Diese Seite war mein erster Gehversuch mit Responsive Webdesign auf Basis von TYPO3 CMS 4.7, gridelements und dem bekannten Mittwald-Responsive-Template.

http://www.projectenmacher.de

Heute finde ich die Seite furchtbar. Die ist auch bald off-line, aber egal, man entwickelt sich weiter🙂

Auf der Startseite siehst Du genau die Lösung umgesetzt, die Du mit gridelements vermutest. Das Seitenlayout wird, wie Du schreibst, mit BE-Elementen gestaltet. Der Code ist:

backend_layout {
	colCount = 3
	rowCount = 2
	rows {
		1 {
			columns {
				1 {
					name = SLIDER
					colspan = 3
					colPos = 0
				}
			}
		}
		2 {
			columns {
				1 {
					name = CONTENT_NORMAL
					colspan = 2
					colPos = 1
					allowed = <div class="twothirds">|</div> 
				}
				2 {
					name = CONTENT_RECHTS
                                        colspan = 1
					colPos = 2
				}
			}
		}
	}
}

Mit gridelements kann man nun zusätzlich und analog zu der Vorgehensweise bei den BE-Elementen sog. CE-Backend-Layouts gestalten. Hier im Fall ist es die sog. Whitebox als Inhaltselement im BE-Layout, die weitere Inhaltselemente wie im Beispiel die 3 Spalten zusätzlich aufnehmen kann:

Die Whitebox:

backend_layout {
	colCount = 1
	rowCount = 1
	rows {
		1 {
			columns {
				1 {
					name = White-Box
					colPos = 1
				}
			}
		}
	}
}

Und das CE-Element für die drei Spalten in der Whitebox:

backend_layout {
	colCount = 3
	rowCount = 2
	rows {
		1 {
			columns {
				1 {
					name = Spalte 1
					colPos = 1
				}
				2 {
					name = Spalte 2
					colPos = 2
				}
				3 {
					name = Spalte 3
					colPos = 3
				}
				
			}
		}
	}
}

Das ist sicher ein Lösungsansatz für die Idee, die audi_s verfolgt und die Du vermutlich auch im Hinterkopf hast. Nur: Dies ist ohne Fluid und Extbase realisiert. Die Elemente werden traditionell über subparts definiert und über die CSS-Klasse twothirds abschließend mit CSS formatiert.

Ob man diese Lösung auch mit Fluid und Extbase realisieren kann, habe ich noch nicht probiert. Ich erinnere mich aber dunkel daran, dass man auch BE-Elements ineinander verschachteln kann, dann wäre vermutlich auch eine Lösung über Fluid möglich. Das war nach meinem Eindruck auch die Frage von audi_s.

O.k., reden wir drüber🙂