Zum Inhalt springen

workOnSubpart-Problem (ungültiges HTML-Dokument)

Erstellt am 26. Mai 2015 · 4 Antworten · letzte Antwort am 28. Mai 2015

Tags: TYPO3 6.x, Frage

Blerry ·

Hallo zusammen,

Ich bedanke mich bei euch im Voraus für eure Zeit!

Ich arbeite mich momentan mit Hilfe des Buches "Einstieg in TYPO3 CMS 6.2 LTS" von Frank Bongers und Michael Hassel in TYPO3 ein.
Meine TYPO3-Version selbst ist die 6.2.1

Folgendes Problem ist bei mir aufgetaucht, und nach über 3 Tagen herumprobieren und googeln habe ich mich entschlossen bei euch Hilfe zu suchen:

Ich verwende der Einfachheit halber den simplen Beispielcode aus dem Buch.

Mein TypoScript siehr wie folgt aus:

# Default PAGE object:
page = PAGE
page.includeCSS {
  file10 = fileadmin/templates/css/08_designvorlage.css
}

page.10 = TEMPLATE
page.10 {
  template = FILE
  template.file = fileadmin/templates/08_designvorlage_mit_markierung.html
  workOnSubpart = DOCUMENT_BODY
}

das CSS wird ohne Probleme eingebunden.

Der HTML-Code sieht wie folgt aus:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Designvorlage Kapitel 8</title>
  <link rel="stylesheet" href="css/08_designvorlage.css" />
</head>
<body>
<!-- ###DOCUMENT_BODY### -->
  <div id="wrapper">
  
    Seiteninhalt Seiteninhalt Seiteninhalt
    
  </div>
<!-- ###DOCUMENT_BODY### -->
</body>
</html>

Im Buch wird vor der Einbindung der Subparts, und dem Ansprechen des Subparts "###DOCUMENT_BODY###" das Problem illustriert, dass im Quelltext der Seite ersichtbar ist, dass es sich nicht um ein gültiges HTML-Dokument handelt.

Trotz des Subparts ###DOCUMENT_BODY### und dem Befehl page.10.workOnSubpart = DOCUMENT_BODY sieht mein Quelltext aber nach wie vor so aus:

<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="utf-8">
<!-- 
	This website is powered by TYPO3 - inspiring people to share!
	TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.
	TYPO3 is copyright 1998-2015 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
	Information and contribution at http://typo3.org/
-->



<title>Home</title>
<meta name="generator" content="TYPO3 6.2 CMS">


<link rel="stylesheet" type="text/css" href="typo3temp/stylesheet_a490dd7cbb.css?1432570160" media="all">
<link rel="stylesheet" type="text/css" href="fileadmin/templates/css/08_designvorlage.css?1432564848" media="all">







</head>
<body>

  <div id="wrapper">
  
    Seiteninhalt Seiteninhalt Seiteninhalt
    
  </div>




</body>
</html>

Das Komische an der Sache ist, dass ich durch Ändern des Befehls "page.10.workOnSubpart = DOCUMENT_BODY" in "page.10.workOnSubparts = DOCUMENT_BODY" ein Korrektes HTML-File in meinen body der Seite geladen bekomme.

Der Quelltext sieht dann so aus:

<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="utf-8">
<!-- 
	This website is powered by TYPO3 - inspiring people to share!
	TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.
	TYPO3 is copyright 1998-2015 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
	Information and contribution at http://typo3.org/
-->



<title>Home</title>
<meta name="generator" content="TYPO3 6.2 CMS">


<link rel="stylesheet" type="text/css" href="typo3temp/stylesheet_a490dd7cbb.css?1432570160" media="all">
<link rel="stylesheet" type="text/css" href="fileadmin/templates/css/08_designvorlage.css?1432564848" media="all">







</head>
<body>
<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Designvorlage Kapitel 8</title>
  <link rel="stylesheet" href="css/08_designvorlage.css" />
</head>
<body>
<!-- ###DOCUMENT_BODY### -->
  <div id="wrapper">
  
    Seiteninhalt Seiteninhalt Seiteninhalt
    
  </div>
<!-- ###DOCUMENT_BODY### -->
</body>
</html>




</body>
</html>

Weiß hier einer Rat?
Ich stehe hier völlig vor einer Wand, zumal ich die Anweisungen des Buches strikt befolge, und das Problem dort durch das Ansprechen des Subparts "###DOCUMENT_BODY###" umgehend behoben sind.

Vielen Dank euch, und liebe Grüße
Chris

ejoo ·

Hallo Blerry,
mit workOnSubpart grenzt du nur den Bereich ein, der überhaupt bearbeitet wird, der Rest des Templates wird ignoriert bzw. aus anderen Informationen gerendert.

Du musst dann einen zweiten Bereich mit einem Subpart-Marker markieren und dann gezielt aufrufen, also:
HTML:

<!-- ###DOCUMENT_BODY### -->
<!-- ###MAIN_CONTENT### -->
  <div id="wrapper">
 
    Seiteninhalt Seiteninhalt Seiteninhalt
 
  </div>
<!-- ###MAIN_CONTENT### -->
<!-- ###DOCUMENT_BODY### -->

Typoscript:

page.10 = TEMPLATE
page.10 {
  template = FILE
  template.file = fileadmin/templates/08_designvorlage_mit_markierung.html
  workOnSubpart = DOCUMENT_BODY
  subparts {
    MAIN_CONTENT = CONTENT
    MAIN_CONTENT < styles.content.get
  }
}

Das ist der richtige Weg, wenn du mit Subparts arbeitest. Das WorkOnSubparts mit s funktioniert, ist nicht dokumentiert.
Vergleiche:
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Fluidtemplate/Index.html
Der Vorteil liegt auf der Hand: Zunächst grenzt Du den Bereich des Templates ein, der überhaupt übernommen werden soll. Dann kannst Du beliebig viele subparts definieren (Namen frei wählbar), die mit verschiedensten Inhalten gefüllt werden können.

Gruß
Dirk

Blerry ·

Hallo Dirk,

Vielen Dank für deine schnelle Antwort, ich habe mich sehr darüber gefreut!

Der Content wird mit deiner Herangehensweise in den zweiten Subpart einwandfrei eingelesen.

Dank deiner Hilfe habe ich im Buch eine irreführende Abbildung und Beschreibung nun richtig deuten können.

Ich bedanke mich für deine Mühe und deine Zeit!
Du hast mir sehr geholfen.

Liebe Grüße
Chris