[TYPO3-german] TS Inhalt der Spalten beeinflusst Template
Marco Brüggemann
marco at schauart.de
Fri Aug 6 23:25:00 CEST 2010
Hallo,
In Typo3 gibt es ja die 4 Spalten die man jeweils mit Content befüllen kann:
styles.content.get / styles.content.getLeft / styles.content.getRight /
styles.content.getBorder
Ich möchte ein Template haben, welche erst in die Spalten guckt ob
Inhalte drin sind, und dann das Template so modifizieren dass Die
Inhalte richtig dargestellt werden.
Was ich sonst genutzt habe hat leider nur zwei Fälle unterschieden:
# PAGE-OBJEKT
# ------------------------------------------------------------
page = PAGE
page {
10 = COA
10 {
if.isTrue.numRows < styles.content.getRight
10 = TEMPLATE
10 {
template = FILE
template.file = fileadmin/templates/html/MT_zweispalte.htm
workOnSubpart = DOCUMENT_BODY
subparts.MENU < tmp.MENU
subparts.CONTENT < styles.content.get
subparts.CONTENTRIGHT < styles.content.getRight
subparts.FOOTERMENU < tmp.FOOTERMENU
}
}
20 = COA
20 {
if.isFalse.numRows < styles.content.getRight
10 = TEMPLATE
10 {
template = FILE
template.file = fileadmin/templates/html/MT_vollseite.htm
workOnSubpart = DOCUMENT_BODY
subparts.MENU < tmp.MENU
subparts.CONTENT < styles.content.get
subparts.FOOTERMENU < tmp.FOOTERMENU
}
}
nun hatte ich das probiert:
tmp.FOOTERMENU = HMENU
tmp.FOOTERMENU {
special = directory
special.value = {$footermenu.pid}
1 = TMENU
1 {
NO.allWrap = <li> | </li>
wrap = <ul> | </ul>
}
wrap = <div id="footer"> | </div>
}
# TEMPLATE NACHBAU
# ------------------------------------------------------------
tmp.headerarea = COA
tmp.headerarea {
10.value = <div id="header"></div>
}
tmp.contentnormal = COA
tmp.contentnormal {
if.isTrue.numRows < styles.content.get
10.value = <div id="content" class="neben">
20 < styles.content.get
30.value = </div>
}
tmp.contentleft = COA
tmp.contentleft {
if.isTrue.numRows < styles.content.getLeft
10.value = <div id="contentleft" class="neben">
20 < styles.content.getLeft
30.value = </div>
}
tmp.contentright = COA
tmp.contentright {
if.isTrue.numRows < styles.content.getRight
10.value = <div id="contentright" class="neben">
20 < styles.content.getRight
30.value = </div>
}
tmp.contentborder = COA
tmp.contentborder {
if.isTrue.numRows < styles.content.getBorder
10.value = <div id="contentborder" class="neben">
20 < styles.content.getBorder
30.value = </div>
}
# PAGE-OBJEKT
# ------------------------------------------------------------
page = PAGE
page {
10 = TEXT
10.value = <div id="page"><div id="box1"><div id="box2"><div
id="box3"><div id="box4"><div id="box5"><div id="box6"><div
id="box7"><div id="box8"><div id="box9">
20 < tmp.headerarea
30 = TEXT
30.value = <div id="content">
40 < tmp.contentleft
50 < tmp.contentnormal
60 < tmp.contentright
70 < tmp.contentborder
80 = TEXT
80.value = </div>
90 < tmp.FOOTERMENU
100 = TEXT
100.value = </div></div></div></div></div></div></div></div></div></div>
}
Es funktioniert so weit, dass ich Inhalte aus der Datenbank aufgelistet
bekomme, doch leider ohne CSS-Einbindung usw. ich vermute es hat was mit
"TEMPLATE" zu tun.
Meine ERSTE wichtige Frage:
Kann ich das Template ohne File aufbauen? Wenn ja .. bitte ein Beispiel
oder eine Hilfe. Ich habe zwar TS-Bücher und auch schon vieles im Web
gesucht, aber nocht nichts so richtig gefunden. Also: kann man zum
Beispiel MARKER und SUBPARTS usw über TypoScript definieren .. alles
ganz ohne FILE.
ZWEITE Frage:
Kann ich, nachdem ich mit "if.isTrue.numRows < styles.content.get"
geprüft habe, die Inhalte zwischenspeichern und gleichzeitig mitzählen
wieviele Spalten belegt sind?
Danach möchte ich in Abhängigkeit der Anzahl von belegten Spalten
entscheiden welches Template genutzt wird und dann jeweils die Inhalte
in den Zwischenspeichern in die Template-Bereiche Speichern.
Gruß, Marco.
More information about the TYPO3-german
mailing list