Zum Inhalt springen

template selector dupliziert Seite anstatt Subtemplate einzubinden

Erstellt am 2. April 2007 · 3 Antworten · letzte Antwort am 22. August 2008

Tags: Templates & Layouts, Frage

Unbekannter Benutzer ·

Cheerio,

habe ein Problem mit dem template selector, der Thematitel sagt eigentlich schon alles.
Ich habe bis jetzt ein Haupttemplate und mehrere Subtemplates, allerdings bindet der selector nur das aktuelle Haupttemplate ein (die Teile zwischen den DOCUMENT_BODY-Markern). Die Teile erscheinen dann im Endeffekt doppelt.

Mein TypoScript sieht so aus:

# Configuration
config.doctype = <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
config.htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"
config.removeDefaultJS = 1
config.inlineStyle2TempFile = 1
config.language = de
config.locale_all = de_DE

# Template selector
plugin.tx_rlmptmplselector_pi1 {
    templatePathMain = fileadmin/templates/
    templatePathSub = fileadmin/templates/sub_templates/
    inheritMainTemplates = 1
    inheritSubTemplates = 1
    defaultTemplateFileNameMain = main.htm
    defaultTemplateFileNameSub = single.htm
}

# Template content object:
temp.contentAreaTemplate = TEMPLATE
temp.contentAreaTemplate {
    template =< plugin.tx_rlmptmplselector_pi1
    template.content.templateType = sub
    workOnSubpart = DOCUMENT_BODY
    subparts.content < styles.content.get
    subparts.rcontent < styles.content.getRight
    subparts.lcontent < styles.content.getLeft
    subparts.border < styles.content.getBorder
}
# nak = TEXT
# nak.value = dreck da!
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
    template =< plugin.tx_rlmptmplselector_pi1
    template.content.templateType = main
    workOnSubpart = DOCUMENT_BODY
    // Funktioniert ...
    //subparts.CONTENT_CONTAINER < styles.content.get
    //subparts.CONTENT_CONTAINER < nak
    // Funktioniert nicht, bindet nur noch mal das Haupttemplate ein ...
    subparts.CONTENT_CONTAINER < temp.contentAreaTemplate
}

# Default PAGE object:
page = PAGE
page.typeNum = 0
page.includeCSS { 
    file1 = fileadmin/templates/styles.css
}
page.10 < temp.mainTemplate

Das Haupttemplate so:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<!-- ###DOCUMENT_HEADER### begin -->
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>titel</title>
	<link rel="stylesheet" href="fileadmin/templates/naknak/styles.css" type="text/css" />
<!-- ###DOCUMENT_HEADER### end -->
</head>
<body>
<!-- ###DOCUMENT_BODY### begin -->
<div id="page">
    <div id="header"></div>
    <div id="navigation">
        <ul>
            <li><img src="img/nav_test_news.png" alt="" /></li>
            <li><img src="img/nav_test_programm.png" alt="" /></li>
            <li><img src="img/nav_test_weiterbildung.png" alt="" /></li>
        </ul>
    </div>
    <div id="perm-links">
        <ul>
            <li><img src="fileadmin/templates/img/tab_test_funkytown.png" alt="" /></li><li><img src="fileadmin/templates/img/tab_test_test.png" alt="" /></li>
        </ul>
    </div>
    <div id="body">
        <h1 id="headline"></h1>
        <div id="content">
			<!-- ###CONTENT_CONTAINER### begin -->

			<!-- ###CONTENT_CONTAINER### end -->
        </div>
    </div>
    <div id="footer"></div>
</div>
<!-- ###DOCUMENT_BODY### end -->
</body>
</html>

Und eine der Subtemplates so:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<!-- ###DOCUMENT_HEADER### begin -->
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>titel</title>
	<link rel="stylesheet" href="fileadmin/templates/naknak/styles.css" type="text/css" />
<!-- ###DOCUMENT_HEADER### end -->
</head>
<body>
<!-- ###DOCUMENT_BODY### begin -->
<div id="single">
	<!-- ###content### begin -->

	<!-- ###content### end -->
</div>
<!-- ###DOCUMENT_BODY### end -->
</body>
</html>

Hab mich schon totgesucht, hier und anderswo, aber ich hab wohl 'n Brett vorm Kopf. Ist mit Sicherheit irgendetwas triviales.

Unbekannter Benutzer ·

Vorweg eins: Ich fürchte, bei deinem im Titel angesprochenen Problem kann ich dir nicht helfen.

Aber ich habe einen vll. ganz nützlichen Hinweis für dich, nachdem ich mich gefragt hab, warum du nicht statt deines handgeklöppeöten Doctypes "config.doctype = xhtml_strict" verwendest.

XHTML ist ja sozusagen "der neueste Schrei" für Webseiten, aber vorsicht beim vorschnellen Umstieg auf XHTML 1.1 oder gar 2.0:
Diese sind nicht mehr hauptsächlich auf Kompatibilität mit Webbrowsern angelegt.
Ganz "normales" XHTML 1.0 sollte da noch ausreichen. 😉

Unbekannter Benutzer · · Beste Antwort

Striktes XHTML bereitet mir keine Sorgen, das ist eher das TypoScript.
Aber Danke für den Tipp, config.doctype auf diese Art zu verwenden.

[edit]Nach weiterer Suche komme ich zu der Annahme, dass der template selector wohl nicht ohne autoparser-Extension funktioniert. Doof.[/edit]

dubidu ·

hallo,

ist zwar schon was länger her, aber um auf die ursprünglich frage zurückzukommen.

spontan fallen mir die TS-fehler in den zeilen 23 und 35 auf.

hier müßte es

template.content.templateType = sub

bzw.

template.templateType = main

heißen. da du beide marker im main und subtemplate mit DOCUMENT_BODY benannt hast, ist der fehler nicht so offensichtlich.

besten gruß
dubidu