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?
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"> </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"> </td>
<td class="ueber_header"> </td>
<td id="ueber_header_haar"></td>
<td class="ueber_header"> </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"> </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"> </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"> </td>
<td class="ueber_header"> </td>
<td id="ueber_header_haar"></td>
<td class="ueber_header"> </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"> </td>
</tr>
</table>
</body>
</html>
vielleicht sieht einer von euch, wo mein Denkfehler liegt. ich kapier es langsam nicht mehr.
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
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!?
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...