Zum Inhalt springen

Spalte RIGHT nur wenn Inhalt darin ist

Erstellt am 26. Juni 2007 · 5 Antworten · letzte Antwort am 27. Juni 2007

Tags: Templates & Layouts, Frage

Caipi ·

Hallo,

ich möchte, wenn die Spalte RIGHT belegt ist, aus meinem einspaltigen Layout ein zweispaltiges wird. Eigentlich funktioniert das auch bis auf den Inhalt von NORMAL, der wird nicht mehr angezeigt.

[...]
## Inhalt in Spalte NORMAL
tmp.inhalt < styles.content.get

## Wenn RECHTS etwas angegebe wird, zweispaltig machen
tmp.rechts < styles.content.getRight
tmp.rechts.stdWrap.required = 1
tmp.rechts.stdWrap.innerWrap = <div id="c_right">|</div>

## Jetzt den linken Inhalt wenn beide belegt sind davor setzen
tmp.rechts.stdWrap.postCObject < styles.content.get
tmp.rechts.stdWrap.postCObject.wrap = <div id="c_left">BLABLA|BLABLA</div><div class="nofloat"></div>

tmp.inhalt.stdWrap.override.cObject < tmp.rechts
[...]

Das ist mal der wichtige Teil. Ich sehe den Inhalt von RIGHT und ich sehe links daneben das BLABLABLABLA. Dazwischen sollten jetzt doch eigentlich die Inhaltselemente von NORMAL stehen, oder habe ich was übersehen?

Sieht jemand meinen Fehler?
Grüße

Caipi

Caipi ·

Hmmmm,

also die Fallunterscheidung geht ja bei mir nur die Ausgabe von style.content.get nicht.

Habe jetzt mal folgendes versucht:

[...]
if.isTrue.numRows < styles.content.getRight
tmp.inhalt < styles.content.getRight
tmp.inhalt.wrap = <div id="c_right">|</div>
tmp.inhalt.stdWrap.postCObject < styles.content.get
tmp.inhalt.stdWrap.postCObject.wrap = <div id="c_left">-->|<--</div><div class="nofloat"></div>

if.isFalse.numRows < styles.content.getRight
tmp.inhalt < styles.content.get
[...]

Aber jetzt kommt nur noch NORMAL

Caipi ·

Wie meinst? ich muss zugeben TypoScriptmäßig noch net der Checker zu sein. Hatte es am Anfang wie es unter dem Link von fuss beschrieben ist, doch dann wir mir auf jeder Seite der gleiche zweispaltige Inhalt angezeigt.

Caipi ·

Habe es jetzt hinbekommen:

[...]
NORMAL < styles.content.get
RECHTS < styles.content.getRight

RECHTS.stdWrap.required = 1
RECHTS.stdWrap.wrap = <div id="c_right">|</div>
NORMAL.stdWrap{
	wrap = |
	innerWrap = |
	innerWrap.override = <div id="c_left">|</div><div class="nofloat"></div>
	innerWrap.override.if.isTrue.cObject < styles.content.getRight
}

tmp.inhalt < NORMAL
tmp.inhalt.stdWrap.preCObject < RECHTS
[...]

Danach dann tmp.inhalt an die stelle im Layout bringen an die sie soll.

Das CSS zu c_right und c_left sieht so aus:

div#c_left {
	width: 400px;
}

div#c_right {
	width: 300px;
	float: right;
	text-align: right;
}

Grüße

Caipi