Typo3 Forum für VServer Hosting, RootServer Hosting und Typo3 Webspace.

Unbeantwortetes Thema

Typo3 individuelle Wraps für Spalten, Spalte nur anzeigen wenn Content vorhanden


Autor Nachricht
Verfasst am: 18. 07. 2009 [16:08]
michael
Michael Hoffmann
Dabei seit: 08.06.2008
Beiträge: 37
Häufig wechselt man auf einer Typo3 Seite von einem zweispaltigen Layout auf ein dreispaltiges Layout. Für dieses Möglichkeit benötigt man entweder unterschiedliche Templates oder man formatiert die Spalten mit TypoScript in Abhängigkeit ob Content für die Spalte rechts vorhanden ist.

Für letzeres ist das folgende TypoScript die Lösung:
TYPOSCRIPT
temp.content = COA
temp.content {
    10 = COA
    10.stdWrap {
    	wrap = <div id="content-3col">|</div>
    	if.isTrue.numRows < styles.content.getRight
    	stdWrap.outerWrap.cObject = COA
    	stdWrap.outerWrap.cObject.10  < styles.content.get 
    	stdWrap.outerWrap.cObject.10.wrap = <div id="content-center">|</div>    
    	stdWrap.outerWrap.cObject.20  < styles.content.getRight
    	stdWrap.outerWrap.cObject.20.wrap = <div id="content-right">|</div>    
	}
    20 = COA
    20.stdWrap {
    	wrap = <div id ="content-2col">| </div>
    	if.isFalse.numRows < styles.content.getRight
    	stdWrap.outerWrap.cObject = COA
    	stdWrap.outerWrap.cObject.10  < styles.content.get 
    	stdWrap.outerWrap.cObject.10.wrap = <div id="content-center">|</div>    
	}
}



In Abhängigkeit ob in der Spalte rechts Inhalte vorhanden sind, wird der Contentbereich unterschiedlich 'gewrappt'. Im ersten Fall mit <div id="content-3col"></div> im letzteren Fall mit <div id="content-2col"></div>

Die Spalte 'Normal' kann dann individuell mit CSS gestalten werden. Bsp.:
CSS
div#content-3col div.content-center {
       witdh: 550px;
}
div#content-2col div.content-center {
     width: 800px;
}

Im ersten Fall wird die Spalte Normal mt einer Breite von 550px, im letzteren Fall mit einer Breite von 800px formatiert.