Zum Inhalt springen

Verständnisproblem bei automaketemplate

Erstellt am 13. Oktober 2008 · 4 Antworten · letzte Antwort am 17. Oktober 2008

Tags: Frage

Getaf_web ·

Hallo zusammen,

ich wühle mich gerade durch das Tutorial "Moderne Templateerstellung, Teil1" und habe dabei folgendes Problem.

als erstes mein aktuelles TypoScript:

# allgemeine Konfigurationen
config.no_cache = 0
config.cache = 1
config.locale_all = german
config.locale = de_DE 
config.metaCharset = UTF-8
config.renderCharset = UTF-8
config.doctype = xhtml_trans
config.xhtml_cleaning = all
config.sys_language_uid = 0
config.language = de

# Configuring the Auto-Parser:
plugin.tx_automaketemplate_pi1 {
  content = FILE
  content.file = fileadmin/template/aktuell/template-root.html
  elements {
    BODY.all = 1
    BODY.all.subpartMarker = DOCUMENT_BODY
    TD.all = 1
  }
  # Prefix all relative paths with this value:
  relPathPrefix = fileadmin/template/aktuell/
}

# CSS-Files einbinden
page.includeCSS {
  file1=fileadmin/template/aktuell/CSS/main.css
  file1 {
      title=MainStyle
      media=all
  }
  file2=fileadmin/template/aktuell/CSS/tt_news_styles.css
  file2 {
      title = News
      media = all
  }
}

# Main TEMPLATE cObject for the BODY
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
  template =< plugin.tx_automaketemplate_pi1
  #workOnSubpart = DOCUMENT_BODY
}

# Default PAGE object:
page = PAGE

page {
  config.index_enable = 1
  config.index_externals = 1
  #config.disableAllHeaderCode = 1
  typeNum = 0
}

page.10 < temp.mainTemplate

also als erstes wird ja dem tx_automaketemplate_pi1 die HTML-Datei zugewiesen und dabei der subpartmarker gesetzt.
Das tx_automaketemplate_pi1 wird dann dem Template zugeordnet und das Template dann der Page. Soweit ist alles klar.

Mein Problem ist folgendes. Nach dem Tutorial wird im tx_automaketemplate_pi1 in elements der subpartmarker eingestellt.

BODY.all.subpartMarker = DOCUMENT_BODY

und im Template soll das

workOnSubpart = DOCUMENT_BODY

eingestellt werden.

Wenn ich letzteres drin habe, dann bekomme ich aber nichts mehr angezeigt. kommentiere ich es wie oben aus, dann bekomme ich mein Template korrekt angezeigt. Das versteh ich nicht. Im Tutorial Listing stehts ja auch so drin.

kann ich überhaupt subparts ohne das "workOnSubpart" überhaupt verarbeiten?

Getaf_web ·

Das erste Problem ist gelöst. Hatte einen Fehler in der HTML Datei.

Jetzt bin ich allerdings beim nächsten Problem, nämlich, dass der auto-parser nichts ersetzt. habe mir jetzt verschiedene tutorials dazu angesehen und kann nicht feststellen, warum der gewünschte testinhalt nicht eingefügt wird.

hier das aktuelle Typoscript:

# Configuring the Auto-Parser:
plugin.tx_automaketemplate_pi1 {
  content = FILE
  content.file = fileadmin/template/aktuell/template-root.html
  elements {
    BODY.all = 1
    BODY.all.subpartMarker = DOCUMENT_BODY
    td.all = 1
    
  }
  # Prefix all relative paths with this value:
  relPathPrefix = fileadmin/template/aktuell/
}

# CSS-Files einbinden
page.includeCSS {
  file1=fileadmin/template/aktuell/CSS/main.css
  file1 {
      title=MainStyle
      media=all
  }
  file2=fileadmin/template/aktuell/CSS/tt_news_styles.css
  file2 {
      title = News
      media = all
  }
}

# Main TEMPLATE cObject for the BODY
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
  template =< plugin.tx_automaketemplate_pi1
  workOnSubpart = DOCUMENT_BODY
  subparts.header_Logo = TEXT
  subparts.header_Logo.value = Hello World
}


# Default PAGE object:
page = PAGE

page {
  config.index_enable = 1
  config.index_externals = 1
  typeNum = 0
}

page.10 < temp.mainTemplate

hier noch der Quelltext der HTML-Datei. vielleicht hab ich hier einen schnitzer drin. Ist zwar noch Tabellen-Layout, aber das funktioniert hoffentlich trotzdem.

<!-- ###DOCUMENT_BODY### -->
  <table cellspacing="0" cellpadding="0" id="main" summary="Dient nur als Container zur Zentrierung der Seite.">
    <tr id="zentrierung">
      <td class="layout_rand">&nbsp;</td>
      <td>
	<table cellspacing="0" cellpadding="0" id="seite" summary="Dient nur als Container fuer feste Groesse der Seite.">
	  <tr>
	    <td>
	      <table cellspacing="0" cellpadding="0" id="table_header" summary="Container fuer Layout header">
		<tr lass="ueber_header">
		  <td lass="ueber_header">&nbsp;</td>
		  <td class="ueber_header">&nbsp;</td>
		  <td id="ueber_header_haar"></td>
		  <td class="ueber_header">&nbsp;</td>
		</tr>
		<tr>
		  <td class="header_seitenrand"><img src="Bilder/Template1_07.jpg" /></td>
		  <td id="header_Logo" width="100%"></td>
		  <td><img src="Bilder/Template1_09.jpg" /></td>
		  <td class="header_seitenrand"><img src="Bilder/Template1_10.jpg" /></td>
		</tr>
		<tr>
		  <td class="header_seitenrand"><img src="Bilder/Template1_11.jpg" /></td>
		  <td id="header_menue"></td>
		  <td id="header_search"></td>
		  <td class="header_seitenrand"><img src="Bilder/Template1_14.jpg" /></td>
		</tr>
	      </table>
	      <table cellspacing="0" cellpadding="0" id="table_content" summary="Inhaltsbereich">
		<tr>
		  <td id="hauptmenue"></td>
		  <td id="content"></td>
		</tr>
	      </table>
	      <table cellspacing="0" cellpadding="0" id="table_footer">
		<tr class="footer">
		  <td class="footer"></td>
		</tr>
	      </table>
	    </td>
	  </tr>
	</table>
      </td>
      <td class="layout_rand">&nbsp;</td>
    </tr>
  </table>
<!-- ###DOCUMENT_BODY### -->

 </html>

und zum vergleichen hänge ich einfach noch den Quelltext, den Typoscript erzeugt an. Der Online-Validator ist der Meinung, dass die Entseite W3C-konform ist.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; 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-2008 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
	Information and contribution at http://typo3.com/ and http://typo3.org/
-->

	<link rel="stylesheet" type="text/css" href="typo3temp/stylesheet_8192c2092f.css" />
	<link rel="stylesheet" type="text/css" href="fileadmin/template/aktuell/CSS/main.css" title="MainStyle" media="all" />
	<link rel="stylesheet" type="text/css" href="fileadmin/template/aktuell/CSS/tt_news_styles.css" title="News" media="all" />

	<title>G.F. Personal GmbH</title>

	<meta name="generator" content="TYPO3 4.2 CMS" />
	<script type="text/javascript" src="typo3temp/javascript_93077bb238.js"></script>

</head>
<body>

  <table cellspacing="0" cellpadding="0" id="main" summary="Dient nur als Container zur Zentrierung der Seite.">
    <tr id="zentrierung">
      <td class="layout_rand">&nbsp;</td>
      <td>
	<table cellspacing="0" cellpadding="0" id="seite" summary="Dient nur als Container fuer feste Groesse der Seite.">
          <tr>
	    <td>
	      <table cellspacing="0" cellpadding="0" id="table_header" summary="Container fuer Layout header">
		<tr class="ueber_header">
		  <td class="ueber_header">&nbsp;</td>
		  <td class="ueber_header">&nbsp;</td>
		  <td id="ueber_header_haar"></td>
		  <td class="ueber_header">&nbsp;</td>
		</tr>
		<tr>
		  <td class="header_seitenrand"><img src="fileadmin/template/aktuell/Bilder/Template1_07.jpg" alt="" /></td>
		  <td id="header_Logo" width="100%"></td>
		  <td><img src="fileadmin/template/aktuell/Bilder/Template1_09.jpg" alt="" /></td>
		  <td class="header_seitenrand"><img src="fileadmin/template/aktuell/Bilder/Template1_10.jpg" alt="" /></td>
		</tr>
		<tr>
		  <td class="header_seitenrand"><img src="fileadmin/template/aktuell/Bilder/Template1_11.jpg" alt="" /></td>
		  <td id="header_menue"></td>
		  <td id="header_search"></td>
		  <td class="header_seitenrand"><img src="fileadmin/template/aktuell/Bilder/Template1_14.jpg" alt="" /></td>
		</tr>
	      </table>
	      <table cellspacing="0" cellpadding="0" id="table_content" summary="Inhaltsbereich">
		<tr>
		  <td id="hauptmenue"></td>
		  <td id="content"></td>
		</tr>
              </table>
	      <table cellspacing="0" cellpadding="0" id="table_footer">
		<tr class="footer">
		  <td class="footer"></td>
		</tr>
	      </table>
	    </td>
	  </tr>
        </table>
      </td>
      <td class="layout_rand">&nbsp;</td>
    </tr>
  </table>
</body>
</html>

vielleicht sieht einer von euch, wo mein Denkfehler liegt. ich kapier es langsam nicht mehr.

fuss ·

Olla!

Ist eigentlich einfach, muss man nur wissen:

In Deinem HTML-Template solltest Du bei header_Logo noch ein & nbsp; oder sonst irgendetwas einfügen, da leere Elemente nicht mit Inhalt gefüllt werden (obwohl der Subpart Marker drin steht).

Hat mich auch schonmal einige Zeit gekostet 😉

<td id="header_Logo" width="100%">irgendwas</td>

Evtl. auch mal TD.all = 1 das TD gross schreiben.

gruss, fuss

einpraegsam.​net ·

Entschuldigung dass ich hier Off-Topic einbringe, aber die Extension Automaketemplate ist so was von überflüssig - ich verstehe absolut nicht, warum diese eingesetzt wird? Vermutlich weil es noch in alten Büchern gedruck ist!?

Michaelh74 ·

Und da schließe ich mich sowas von an ;-)
Kann nicht verstehen warum das in den Bücher immer verwendet wird. Kein Wunder, dass man als Neuling mit dem Ding die Thematik so nicht so einfach versteht...