Zum Inhalt springen

DIV Layout für Content Element/Record öfters verwenden

Erstellt am 12. Januar 2012 · 3 Antworten · letzte Antwort am 13. Januar 2012

Tags: Templates & Layouts, Inhaltselemente, Frage

stefan.​binder ·

Hallo zusammen,

ich bitte um Hilfe oder Stichwort wonach ich googeln kann =)

auf der rechten Seite sind immer gleichbleibende DIV's (CSS-Layout) mit verschiedenem Inhalt (Header & Text, später vl. auch Module).

Wie kann ich das realisieren?
Ein Template für eine immer wiederkehrende Box anlegen und dann einem Content Elemen/Record zuweisen? :S

Ich würde es gerne verwenden, indem ich einen neuen Record anlege, und dass ein Redakteur dieses Layout dann auswählen kann.

Einsatzgebiet, z.B.: eine Art Tipp oder Info Box die verschiedene Inhalte hat, aber vom Design und Headerbild oder Hintergrund immer die Selbe Aufmachung hat...

Vielen Dank für eure Hilfe =)

lg Stefan

stefan.​binder ·

Vielen Dank =)
hat mich schon mal um einiges weiter gebracht...

aber noch nicht ganz glücklich gemacht... meine typoscript Kenntnisse muss ich auf jeden Fall noch pflegen.

Ich habe jetzt folgendes:

tt_content.stdWrap.innerWrap.cObject {
  10 = HTML
  10.value = <div class="infobox"><div class="infobox_header"> | </div><div class="body_bg"> </div><div class="bottomline"></div></div>
}

Ich würde aber gerne den Header in den div infobox_header und den Bodytext in den div body_bg setzen...
kann man das irgendwie realisieren?

10 ist die ID von meiner section_frame

http://dev.bindergraphie.at/typo3/
der Link zur Site...

Danke =)

lg Stefan

Julian.​Hofmann ·

Interessant,dass Dein TS so funktioniert. Bei Wechsel von 4.2 auf 4.3 wurde nämlich am innerWrap rumgeschraubt, sodass einige Anleitungen zu den Rahmen seitdem nicht mehr passen. Details hierzu http://wissen.netzhaut.de/typo3/typoscript/rahmen-section_frame-seit-typo3-4-3/

stefan.binder schrieb

meine typoscript Kenntnisse muss ich auf jeden Fall noch pflegen.

Damit können wir gleich anfangen :-)

Deine Anforderungen müssen in kleinere Häppchen zerlegt werden:
- DIV um das ganze Inhaltselement
- DIV um die Headline
- DIV um bodytext

Ersteres klappt mit tt_content.stdWrap.innerWrap.cObject

Wie schaut's mit dem Rest aus. Am besten wir schauen mal in die Systemextension CSS Styled Content und dort in das TS, das üblicherweise im Template-Datensatz mit inkludiert wird: /typo3/sysext/css_styled_content/static/setup.txt
Für das Inhaltselement "Text" ist definiert:

# *****************
# CType: text
# *****************
tt_content.text = COA
tt_content.text {
	10 = < lib.stdheader

	20 = TEXT
	20 {
		field = bodytext
		required = 1

		parseFunc = < lib.parseFunc_RTE

		editIcons = tt_content:bodytext, rte_enabled
		editIcons.beforeLastTag = 1
		editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext

		prefixComment = 2 | Text:
	}
}

Damit erschließt sich die Lösung für den Punkt 3:
Ein DIV um den Bodytext bekommen wir einfach, da "20" einfach ein cObject TEXT ist, stehen hier die stdWrap-Eigenschaften zur Verfügung:

tt_content.text.20.stdWrap.innerWrap.cObject {
  // ...Fallsunterscheidung anhand des section_frame
}

Fehlt noch die Überschrift
Ein Blick in lib.stdheader zeigt, dass auch hier stdWrap-Eigenschaften vorhanden sind - allerdings auch schon genutzt werden

# Content header:
lib.stdheader = COA
lib.stdheader {

	# ...Definitionen der verschiedenen Gewichtung...

	# Post-processing:
	stdWrap.fieldRequired = header
	stdWrap.if {
		equals.field = header_layout
		value = 100
		negate = 1
	}

	stdWrap.editIcons = tt_content : header, [header_layout | header_position], [header_link|date]
	stdWrap.editIcons.beforeLastTag = 1
	stdWrap.editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.header

	stdWrap.dataWrap = <div class="csc-header csc-header-n{cObj:parentRecordNumber}">|</div>
	stdWrap.prefixComment = 2 | Header:
}

Da müsstest Du auch wieder anhand des section_frames den fall unterscheiden und ggf. ein DIV mit reinbauen.