Zum Inhalt springen

Inhalte via TypoScript positionieren ...

Erstellt am 23. März 2008 · 2 Antworten · letzte Antwort am 23. März 2008

Tags: Frage

slobodan ·

Hallo zusammen,

ich stehe gerade total auf dem Schlauch ... Ich möchte folgenden HTML-Code mit Content versehen (wie zwischen den ### ... ### im Quellcode unten). Ich denke, dass man das via TypScript lösen kann. Leider fehlt mir gerade jeglicher Ansatz. Vielleicht kann mir ja jemand auf die Sprünge helfen?

<div class="container">
          <div class="boxheader">
            <img class="h_left" src="images/ecke_left.png" alt="" />
            <h1>### Hier soll die Überschrift stehen ###</h1>
            <img class="h_right" src="images/ecke_right.png" alt="" />
          </div>
          <div class="border">
            <div class="content_left">
              <div class="text">
                <h2>### Hier soll der Subheader stehen ###</h2>
                <p>
                   ### Hier soll der Inhalt rein ###
                </p>
              </div>
            </div>
          </div>
        </div>

Schon mal beste Dank

Grüße

Slobodan

SLAng ·

Uiuiui Tiffy...

Also:

Dein HTML-Template:

<!--###DOCUMENT_BODY###  start-->

<div class="container">
	<div class="boxheader">
		<img class="h_left" src="images/ecke_left.png" alt="" />
		###HEADER###
		<img class="h_right" src="images/ecke_right.png" alt="" />
	</div>
	<div class="border">
		<div class="content_left">
			<div class="text">
				###SUBHEADER###
				###CONTENT###
			</div>
		</div>
	</div>
</div>

<!--###DOCUMENT_BODY###  stop-->

Dein TS Setup dazu:

temp {
	HEADER = TEXT
	HEADER {
		field = title
		stdWrap.wrap = <h1>|</h1>
		stdWrap.required = 1
	}
	SUBHEADER = TEXT
	SUBHEADER {
		field = subtitle
		stdWrap.wrap = <h2>|</h2>
		stdWrap.required = 1
	}
}	

page = PAGE
page {
	typeNum = 0

	10 = TEMPLATE
	10 {
		template = FILE
		template.file = fileadmin/...Pfad zu deinem Template.html
		workOnSubpart = DOCUMENT_BODY
		marks {
			HEADER < temp.HEADER
			SUBHEADER < temp.SUBHEADER
			CONTENT < styles.content.get
		}
	}
}

Erklärung:
Du benötigst ein Subpart der alles umschließt. In diesem Fall <!--###DOCUMENT_BODY### start--> und <!--###DOCUMENT_BODY### stop-->. Dieser wird dann angesprochen mit workOnSubpart = DOCUMENT_BODY.

Die einzelnen Marker werden bei

...
		marks {
			HEADER < temp.HEADER
			SUBHEADER < temp.SUBHEADER
			CONTENT < styles.content.get
		}
...

angesprochen und entsprechend auf temp kopiert.

TypoScript Zeile 4 holt die Überschrift dynamisch aus dem Titel-Feld und wrapt mit <h1>.
TypoScript Zeile 10 holt die Unter-Überschrift dynamisch aus dem SubTitel-Feld und wrapt mit <h2>
Beides ist auf required gesetzt, was bedeutet, wenn kein Titel, oder kein Subtitel vergeben wurde, wird gar kein wrap ausgegeben. Das hat den Vorteil das du keine leeren <h1> oder <h2> tags drinn stehen hast.

Bitte unbedingt das hier mal durcharbeiten:
http://www.mittwald.de/dokumentation/

slobodan ·

Hallo SLAng,

verdammt, ich habe mich nicht eindeutig ausgedrückt.
Erstmal vielen Dank für die ausführlich Antwort.
Asche auf mein Haupt ... der von mir zitierte Quellcode sollte kein Template sein, sondern sollte innerhalb des Templates als Container für alle Inhaltselemente (Normaler Text, Text mit Bild, nur Bilder ...) fungieren.

Die "Marker" im HTML-Quellcode waren eigentlich nur als Platzhalter gedacht...

Ich hoffe, dass meine eigentliche Frage jetzt verständlicher ist.
Nochmals sorry, für Deine Mühe. Vielleicht kann ich mich ja mal revanchieren.

Grüße

Slobodan