[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