Zum Inhalt springen

Template Auto-parser liest das HTML File nicht ein!

Erstellt am 29. August 2005 · 8 Antworten · letzte Antwort am 12. September 2005

Tags: Frage

Maeruelin ·

O.k. mein Problem ist schnell erklärt.

Ich habe folgendes HTML File ...

<html>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html;" />
<link type="text/css" rel="stylesheet" href="default.css" />
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0">
  <tr>
  	<td><div id="header"></div></td>
  </tr>
  <tr>
  	<td>
		<table border="0" cellpadding="0" cellspacing="0">
			<tr>
				<td id="main_menu">
					<div class="main_menu_no"><a href="#">Startseite</a></div>
					<div class="main_menu_act"><a href="#">Firma</a></div>
					<div class="main_menu_no"><a href="#">Unser Angebot - Ihre Lösungen</a></div>
					<div class="main_menu_no"><a href="#">Kunden</a></div>
					<div class="main_menu_no"><a href="#">Partner</a></div>
					<div class="main_menu_no"><a href="#">Kontakt</a></div>
				</td>
				<td id="sub_menu">
					<div class="sub_menu_no"><a href="#">Team</a></div>
					<div class="sub_menu_act"><a href="#">Erfolgsprinzip</a></div>
					<div class="sub_menu_no"><a href="#">Methodik</a></div>
				</td>
				<td><div id="menu_spacer"></div></td>
			</tr>
		</table>
	</td>
  </tr>
  <tr>
  	<td>
		<table border="0" cellpadding="0" cellspacing="0">
			<tr>
				<td><div id="picture"><img class="picture" src="bild.gif" width="185" alt="" /><br /><p class="picture_text">Bildmarginalien stehen hier und können auch Mehrzeiler sein. Bild 200197217-001 (lizenzfrei)</p></div></td>
				<td><div id="content"><h1>Erfolgsprinzip</h1>
					<h2>Ein Unternehmen ist dann erfolgreich,  wenn Kundenaufträge in Zeit,  zu Top-qualität und marktgerechtem Preis realisiert sind,  die Marge stimmt und der Kunde begeistert ist.</h2><br />
					<p class="bodytext">Was wurde er nicht schon alles genannt! «Oberzyniker der Nation», «intellektuelle Lichtgestalt», «Adorno der Fernsehunterhaltung», ja sogar «der Immanuel Kant unserer Tage». Aber dann steht einem dieser neben Thomas Gottschalk und Günther Jauch höchstbezahlte deutsche Fernsehstar im hellen Sommeranzug, fast zwei Meter gross, gegenüber, reicht höflich die Hand zum Gruss und sagt: «Ich kenne Ihre Interviews. Ich bewundere Sie.» </p>
					<p class="bodytext">Und nun hat der Interviewer, der Grössenwahn erwartet hat, gegen eine Bescheidenheit anzukämpfen, in der nur gelegentlich der legendäre Witzreflex aufblitzt.Harald Schmidt, geboren 1957 in Neu-Ulm, aufge- wachsen in kleinbürgerlichem Ambiente (Vater: Verwaltungsangestellter, Mutter: Kindergärtnerin),  </p></div></td>
				<td><div id="infobox">
					<div id="infobox_title">INFO_box</div>
					<p class="infoboxtext">Liste 1</p>
					<p class="infoboxtext">Wählt Liste 2</p>
					<p class="infoboxtext">Liste 3</p>
					<p class="infoboxtext">Liste 4, 5</p>
					<p class="infoboxtext">Liste 1</p>
					<p class="infoboxtext">Wählt Liste 2</p>
					<p class="infoboxtext">Liste 3</p>
					<p class="infoboxtext">Liste 4, 5</p>
					<div id="infobox_bottom"></div>
				</div></td>
			</tr>
		</table>
	</td>
  </tr>
  <tr>
  	<td id="footer"><table><tr><td><div id="copyright">© 2005 Firma</div></td><td><div id="contact"><a href="#">Kontakt</a></div></td><td><div id="sitemap"><a href="#">Sitemap</a></div></td><td><div id="print"><a href="#"><img src="print.gif" border="0" alt="" />Drucken</a></div></td><td><div id="top"><a href="#">Top<img src="top.gif" border="0" alt="" /></a></div></td><td><div id="language">Sprache: <a href="#">D</a> <a href="#">F</a></div></td></tr></table></td>
  </tr>
</table>
</body>
</html>

... das ich mit automaketemplate einlesen will, um es als Template zu verwenden.

Mit folgenden Zeilen TypoScript ...

# Configuring the Auto-Parser
plugin.tx_automaketemplate_pil {
 # Read the template file:
 content = FILE
 content.file = fileadmin/templates/sinXcom/sinXcom.html

 # Here we define which elements in the HTML that should be wrapped in subpart-comments:
 elements {
  BODY.all = 1
  BODY.all.subpartMarker = DOCUMENT_BODY

  HEAD.all = 1
  HEAD.all = rmTagSections = title

  TD.all = 1

  DIV.all = 1
 }

 # Prefix all relative paths with this value:

 relPathPrefix = fileadmin/templates/sinXcom/
}

# Main TEMPLATE cObject for the BODY
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
 # Feeding the content from the Auto-Parser to the TEMPLATE cObject:
 template =< plugin.tx_automaketemplate_pil
 # Select only the content between the <body>-tags
 workOnSubpart = DOCUMENT_BODY

 # Substitute the ###main_menu### subpart with some example content:
 subparts.main_menu = TEXT
 subparts.main_menu.value = HELLO WORLD - MENU

 # Substitute the ###content### subpart eith some example content
 subparts.content =  TEXT
 subparts.content.value = HELLO WORLD - Content
}

# Main TEMPLATE cObject for the HEAD
temp.headTemplate = TEMPLATE
temp.headTemplate {
 # Feeding the content from the Auto-Parser to the TEMPLATE cObject
 template =< plugin.tx_automaketemplate_pil
 # Select only the content between the <head>-tags
 workOnSubpart = DOCUMENT_HEADER
}

# Default PAGE object:
page = PAGE
page.typeNum = 0

# Copying the content from TEMPLATE for <body>-section:
page.10 < temp.mainTemplate

# Copying the content from TEMPLATE for <head>-section:
page.headerData.10 < temp.headTemplate

... versuche ich dies zu erreichen, aber es wird weder das ungeparste noch das geparste HTML File angezeigt!

Hoffentlich sieht jemand den Fehler, den ich gemacht habe.

Vielen Dank für jegliche Hilfe

Nicklas ·

du musst dem armen parser auch sagen wo sich das dokument befindet...
es steht wunderbar im MTB-tut unter "1.3.3 Grundlagen zum TEMPLATE cObject"
beschrieben

mfg

Maeruelin ·

Ja ich habe das MTB gelesen. Ich seh' den Fehler aber trotzdem nicht. Überigens mein TS ist dem aus dem MTB sehr ähnlich und das HTML habe ich auch versucht ähnlich wie das im MTB aufzubauen.

Vielleicht kann mir jemand die Zeile, wo der Fehler liegt angeben oder sogar eine Lösung?

Besten Dank

Nicklas ·

wie gesagt, dein TS habe ich nicht "kritisiert", ich habs auch gar nicht gelesen...

wieso liest du dir 1.3.3 nicht einfach durch?

Nun zum wichtigsten Punkt des TEMPLATE cObjects: es liest nicht nur die HTML-Datei - es erlaubt uns auch, Teile daraus zu extrahieren und durch dynamischen Inhalt zu ersetzen!

Ein Teilabschnitt wird als Inhalt zwischen zwei gleichen Markierungen definiert, die von ### umschlossen sind und wiederum (optional) in HTML-Kommentaren enthalten sind. Die Datei "test.html" Datei hat zwei Teilabschnitte, den "DOCUMENT BODY" und den Abschnitt "INSIDE HEADER". Wie Sie sehen können, werden die Markierungen dieser Teilabschnitte in HTML-Kommentaren eingeschlossen, so dass sie nicht sichtbar sind.

wenn du jetzt deinen body und den des tuts anguckst, sollste du eigentlich etwas festellen...

<body>
 
<!-- ###DOCUMENT_BODY### -->
	<h1>
		<!-- ###INSIDE_HEADER### -->
			Header of the page
		<!-- ###INSIDE_HEADER### -->
 
	</h1>
<!-- ###DOCUMENT_BODY### -->
 
</body>
Maeruelin ·

Tja, ich bin zur banalen Erkenntnis gekommen, dass man Typo3 nicht einfach so schnell schnell einsetzen kann 😉

Nun hab' ich mich 200-300 Seiten ins TypoScript eingelesen und nun das ganze Setup von Grund auf neu gecodet. Es funktioniert auch alles sehr schön bis auf eine Kleinigkeit...

Ich habe eine 2-sprachige Seite angelegt. Das einpflegen im Backend und der Sprachwechsel im Frontend funktionieren auch bestens. Nur das der Sprachlink fett dargestellt wird, der gerade aktiv ist funktioniert nicht...

 10.marks.LANGUAGE_LINK = COA
 10.marks.LANGUAGE_LINK {
  10 = TEXT
  10.field = uid
  10.wrap = <a style="font-weight: bold;" href="index.php?id=|&amp;L=0">D</a> 
  20 = TEXT
  20.field = uid
  20.wrap = <a href="index.php?id=|&amp;L=1">F</a>
  [globalVar = GP:L=1]
   10.wrap = <a href="index.php?id=|&amp;L=0">D</a> 
   20.wrap = <a style="font-weight: bold;" href="index.php?id=|&amp;L=1">F</a>
  [global]
 }

Es ist in jedem Fall immer das "F" fett und nie das "D", auch wenn in der URL &L=0 steht 🙁

wäre cool, wenn ich diesen letzten Schönheitsfehler auch noch ausmerzen könnte!

Maeruelin ·

o.k. auch dieses Problem hab' ich gelöst. Die Condition-Tags müssen auf oberster Ebene platziert werden und dürfen nicht zwischen geschweiften Klammern stehen.

also:

10.marks.LANGUAGE_LINK = COA
10.marks.LANGUAGE_LINK {
 10 = TEXT
 10.field = uid
 10.wrap = <a style="font-weight: bold;" href="index.php?id=|&L=0">D</a>
 20 = TEXT
 20.field = uid
 20.wrap = <a href="index.php?id=|&L=1">F</a>
}
[globalVar = GP:L=1]
 10.marks.LANGUAGE_LINK.10.wrap = <a href="index.php?id=|&L=0">D</a>
 10.marks.LANGUAGE_LINK.20.wrap = <a style="font-weight: bold;" href="index.php?id=|&L=1">F</a>
[global]