Zum Inhalt springen

Mehrere Elemente per TypoScript zusammensetzen

Erstellt am 12. Mai 2004 · 1 Antwort · letzte Antwort am 9. Juli 2004

Tags: Frage

garvin ·

Hallo!

Ich versuche eine bestehende Seite mit einigen PHP-Modulen in Typo3 einzupflegen. Damit die Navigation in Typo3 auch die Externen Seiten erfassen kann plane ich per TypoScript eigene PHP-Funktionen anzusprechen. Diese sollen im Inhaltsbereich mit dem restlichen Typo3-Template verwurstet werden, so dass man auf den Seiten auch noch normale Inhaltselemente vor den PHP-Funktionen einbetten kann.

Dazu habe ich ein TypoScript gebastelt, was ich gleich anhänge. Die problematische Stelle habe ich markiert, wo ich versuche ein "mycontent"-Container herzustellen, der zum einen vom automake-plugin den contentbereich enthält (.10) und dann noch den eigenen PHP-Code (.20). Darauf folgt dann der Zusammenbau des Templates, der sich die mycontent.10 und mycontent.20 Variable ziehen soll. Wenn ich also 'subparts.content < mycontent.10' oder 'supbarts.content < mycontent.20' dort eingebe, wird entweder der Inhaltsbereich ODER der PHP-Bereich auf der finalen Seite angezeigt.

Verwende ich 'subparts.content < mycontent', hatte ich gedacht dass beide Teile zusammengefügt werden, aber dann erfolgt garkeine Ausgabe mehr.

Muss ich statt dem PAGE objekt für mycontent etwas anderes nehmen? Oder gibt es einen '+<' Zuweisungsoperator?

Vielen Dank für die Hilfe, und hier nun der TypoCode:

# ----------------------------------------------------------------------
# AUTOPARSER
# ----------------------------------------------------------------------
plugin.tx_automaketemplate_pi1 {
  content = FILE
  content.file = fileadmin/templates/template.html

  elements {
    BODY.all = 1
    BODY.all.subpartMarker = DOCUMENT_BODY

    HEAD.all = 1
    HEAD.all.subpartMarker = DOCUMENT_HEADER
    HEAD.rmTagSections = title

    TD.all = 1
    DIV.all = 1
  }
}

# ----------------------------------------------------------------------
# MENU
# ----------------------------------------------------------------------

# -- LAYER 1 (Aktuelle Ausgabe)
temp.menu_layer1 = HMENU
temp.menu_layer1 {
  entryLevel = 0
  special = directory
  special.value = 10
}

temp.menu_layer1.1 = TMENU
temp.menu_layer1.1 {
  expAll = 1
  NO {
    allWrap = <p> | </p><p class="spacer"><img src="img/spacer_layer1.gif" width="87" height="1" alt="Spacer" /></p>
    subst_elementUid = 1
  }
}

# -- LAYER 3 (Testberichte)
temp.menu_layer3 = HMENU
temp.menu_layer3 {
  entryLevel = 0
  special = directory
  special.value = 8
}

temp.menu_layer3.1 = TMENU
temp.menu_layer3.1 {
  expAll = 1
  NO {
    allWrap = <p> | </p><p class="spacer"><img src="img/spacer_layer3.gif" width="87" height="1" alt="Spacer" /></p>
    subst_elementUid = 1
  }
}

# ----------------------------------------------------------------------
# PHP KRAM
# ----------------------------------------------------------------------

includeLibs.test_library = fileadmin/test_library.php
ptemp.external_content = USER
ptemp.external_content.userFunc = user_test_library_class->test

# --- Das hier klappt wohl nicht:
mycontent = PAGE
mycontent.10 < styles.content.get
mycontent.20 < ptemp.external_content
# ---

# ----------------------------------------------------------------------
# MAIN TEMPLATE ASSIGNING
# ----------------------------------------------------------------------
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
  template =< plugin.tx_automaketemplate_pi1

  workOnSubpart = DOCUMENT_BODY

  # hier den inhalt von mycontent (zusammengesetzt) einfügen:
  subparts.content < mycontent
  subparts.layer1 < temp.menu_layer1
  subparts.layer3 < temp.menu_layer3
}

temp.headTemplate = TEMPLATE
temp.headTemplate {
  template =< plugin.tx_automaketemplate_pi1
  workOnSubpart = DOCUMENT_HEADER
}

# ----------------------------------------------------------------------
# MAIN TEMPLATE STITCHING
# ----------------------------------------------------------------------

page = PAGE
page.typeNum = 0
page.config.doctype = xhtml_trans

page.10 < temp.mainTemplate
page.headerData.10  < temp.headTemplate
Unbekannter Benutzer ·

Hi, stoße gerade auf deinen Thread ... ist Freitag Nachmittag und ich habs mir jetzt nicht detailiert durchgelesen, aber wenn du verschiedene "Elemente" zusammensetzen willst, dann versuchs mal hier:

 temp.meinTyposcriptBausatz = COBJ_ARRAY
 temp.meinTyposcriptBausatz {
    10 < temp.meinePHPScriptIhrSeineRückgabeWerte
    20 < temp.meinTMENU
 }

Und im Autoparser:

 meinSubpart < temp.meinTyposcriptBausatz

Ich hoffe, du weißt was gemeint ist, ansonsten kann ich es dir nochmals genauer erklären ...