Zum Inhalt springen

Problem bei Subtemplate mit Autoparser und Page Template Selektor

Erstellt am 14. März 2008 · 2 Antworten · letzte Antwort am 17. März 2008

Tags: Frage

hubae ·

Hallo!

Ich habe ein kleines Problem mit den dem Autoparser und dem Page Template Selektor und finde einfach keine passende Lösung.

Das Problem ist folgendes:

Ich habe Main- und Sub-Templates, die ich im Backend auswählen kann und die auch im Frontend ausgegeben werden. Eigentlich funktioniert auch alles wie es soll, nur wird beim Subtemplate der Marker "content2" nicht ersetzt. Ich habe es auch schon mit statischem Text versucht, aber ohne Erfolg. Ersetze ich im Maintemplate den Marker "content" mit styles.content.get, wird der Inhalt angezeigt. Nur im Subtemplate werden die Marker irgendwie nicht ersetzt.
Ach ja, Styled Content ist aktiviert!

Hier ist mein Typoscript mit wichtigsten Stellen (wie gesagt, es funtioniert alles bis auf diese eine Sache) #paralyzed#

Hier ist mein Typoscript:

# Page-Template-Selektor konfigurieren:
# ------------------------------------
plugin.tx_rlmptmplselector_pi1 {
templatePathMain = fileadmin/templates/main/
templatePathSub = fileadmin/templates/sub/
defaultTemplateFileNameMain = normal.html
defaultTemplateFileNameSub = 1spalte.html
inheritMainTemplates = 1
inheritSubTemplates = 1
}

# Den Auto-Parser konfigurieren:
# -----------------------------
plugin.tx_automaketemplate_pi1 {
  # Das ausgewählte Template an den Auto-Parser übergeben
content < plugin.tx_rlmptmplselector_pi1
  # Festlegen, wie der Parser die Marker erstellen soll
elements {
BODY.all = 1
BODY.all.subpartMarker = DOCUMENT_BODY
HEAD.all = 1
HEAD.all.subpartMarker = DOCUMENT_HEADER
HEAD.rmTagSections = title
    #Alle classes und ids bei tds und divs in typo-marker umsetzen
TD.all = 1
DIV.all = 1
}
  # Präfix für alle relativen Pfade festlegen:
relPathPrefix = fileadmin/templates/main/
}

# TEMPLATE cObject für den HEAD:
# -----------------------------
temp.headTemplate = TEMPLATE
temp.headTemplate {
  # Den Inhalt vom Auto-Parser Auto-parser zum TEMPLATE cObject referenzieren:
template =< plugin.tx_automaketemplate_pi1
  # Nur den Inhalt zwischen den <head>-Tags auswählen
workOnSubpart = DOCUMENT_HEADER
}

# TEMPLATE cObject für den Inhalt:
# -------------------------------
temp.contentAreaTemplate = TEMPLATE
temp.contentAreaTemplate {
template =< plugin.tx_automaketemplate_pi1
template.content.templateType = sub
workOnSubpart = DOCUMENT_BODY
subparts.content2 < styles.content.get
}

# Das Hauptmenü:
# -------------
temp.navigation = HMENU
temp.navigation {
...
}

# Die Breadcrumps:
# ---------------
temp.breadcrump = HMENU
temp.breadcrump {
...
}

# Main TEMPLATE cObject für den BODY:
# ----------------------------------
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
  # Feeding the content from the Auto-parser to the TEMPLATE cObject:
template =< plugin.tx_automaketemplate_pi1
template.content.templateType = main
  # Select only the content between the <body>-tags
workOnSubpart = DOCUMENT_BODY
subparts.header < temp.navigation
subparts.sitetitle < temp.breadcrump
subparts.content < temp.contentAreaTemplate
}

# Default PAGE-Objekt:
# -------------------
page = PAGE
page {
typeNum = 0
  # Ausgabe von XHTML aktivieren
config.xhtml_cleaning = all
  # Doctype auf XHTML 1.0 einstellen
  #config.doctype = xhtml_trans
config.doctype = xhtml_strict
config.renderCharset = utf-8
  # Sprache für die Attribute "xml:lang" und "lang" im <html>-Tag
config.htmlTag_langKey = de
  # XML Prolog unterdrücken, weil der Internet Explorer ansonsten in den nicht standartkonfomen Quirks-Modus wechselt
config.xmlprologue = none
  # Den Inhalt vom Head-TEMPLATE in die <head>-section schreiben:
headerData.10 < temp.headTemplate
  /*
  Den Inhalt vom Main-TEMPLATE in die <body>-section schreiben
  (die zweite Zeile ist zum Testen und gibt den Quellcode mit
  den vom Auto-Parser gesetzten Markern aus. Nur eine Zeile
  darf auskommentiert sein!:sad:
  */
10 < temp.mainTemplate
  #10 =< plugin.tx_automaketemplate_pi1
}

Wahrscheinlich nur ein kleines Problem, aber langsam bekomme ich hier einen Hals

hubae ·

Hat denn keiner ne Idee? Eigentlich liegt das Problem ja nur darin, dass die Marker im Subtemplate nicht ersetzt werden.

hubae ·

Mittlerweile habe ich das Problem gelöst. Das Typoscript ist korrekt. Der Fehler lag im Subtemplate selbst:

Der Autoparser benötigt einen Text in dem zu ersetzenden HTML-Element. Steht dort kein Text drin, wird der Marker einfach nicht ersetzt.

Das HTML-Subtemplate muss also statt

<html> <title>Einspaltig</title> <body> <div id="content0"></div> </body> </html>

so aussehen:

<html> <title>Einspaltig</title> <body> <div id="content0">Hier muss ein Text stehen ...</div> </body> </html>