Zum Inhalt springen

workOnSubpart zerstört meine Seite (leerer Body)

Erstellt am 28. April 2012 · 10 Antworten · letzte Antwort am 17. Mai 2012

Tags: Frage

Unbekannter Benutzer ·

Hallo,

ich habe das Problem, dass ich sobald ich workOnsubpart einsetzen keinerlei inhalt mehr im Body steht. Ich weiß aber absolut nicht was ich falsch gemacht habe. Lasse ich workOnSubpart raus wird zumindestens das template angezeigt.

Hier der Body meines html templates(ich habe ein paar Details durch *** ersetzt):

<body>
?<!-- ##FRAME### -->
<div id="main">?
<div id="kopf">
<div id="logo">
<!-- ###LOGO### -->
***
<!-- ###LOGO### -->
</div>
<div id="mainnavi">
<!-- ###NAVI### --><ul>
<li>
***
</li>
<li>
***
</li>
<li>
***
</li>
<li>
***
</li>

</ul><!-- ###NAVI### -->
</div>
<div class="clear"></div>
</div>
<div id="slider">
<!-- ###***### -->

***

<!-- ###***### -->
</div>
<div id="line"></div>
<div class="boxes">
<!-- ###***### -->
<h3>Termine</h3>
<!-- ###***### -->
</div>
<div class="boxes">
<!-- ###***### -->
<h3>Social Media</h3>
***
<!-- ###***### -->
</div>
<div class="boxes">
<!-- ###***### -->
***
<!-- ###***### -->  
</div>
<div class="clear"></div>
<div id="footer">
<div class="boxes">
<!-- ###***### -->
<p>Fill with Navigation Elements</p>
<!-- ###***### -->
</div>
<div class="boxes">
<!-- ###***### -->
<h3>Aktuelles</h3>
<!-- ###***### -->
</div>
<div class="boxes">
<!-- ###***### -->
***
 <!-- ###***### -->
</div>
<div class="clear"></div>
***

</div>


</div>
?<!-- ##FRAME### -->
</body>

Und hier mein TypoScript-Template:

Haupttemplate= TEMPLATE
Haupttemplate {
  template = FILE
  template.file = fileadmin/template/t3template.html
  workOnSubpart = FRAME
  subparts.LOGO < logo

}
logo = TEXT
logo.value Test
#logo.file = fileadmin/template/logo.png

page = PAGE
page.10 < Haupttemplate
page.includeCSS {
  design = fileadmin/template/design.css
}

Kann mir vielleicht jemand helfen? Ich komme leider absolut nicht weiter, obwohl dies nicht mein 1. versuch mit typo3 ist.

jazbo ·

Hallo,

auf den 1. Blick:

versuch mal

###FRAME####

bei dir steht

##FRAME###

Ansonsten ein allgemeiner Tipp:
Verkleinere das Problem, setze zuerst nur einen Subpart bzw. einen Marker, wenn der funktioniert, erweiterst Du dein TS-Template und dein HTML-Template.So hast Du kleine testbare Schritte, und die Fehlersuche wird viel leichter.

Grüße

Unbekannter Benutzer ·

So, jetzt hab ich entschieden, dass ich für die Unterseiten ein anderes Layout brauche und wüsste nun gerne wie das geht. Ich probiere es so wie es bei meinen css dateien funktioniert:

page.10 < Haupttemplate
Haupttemplate {
  template = FILE
  [globalVar = TSFE:id = 1]
  template.file = fileadmin/template/template.html
  [else]
  template.file = fileadmin/template/templateunterseiten.html
  [end]
}

Leider geht das aber warum auch immer nicht. Kann mir bitte einer Helfen?

Chrissli ·
page.10 < Haupttemplate
Haupttemplate {
  template = FILE
  [globalVar = TSFE:id = 1]
  template.file = fileadmin/template/template.html
  [else]
  template.file = fileadmin/template/templateunterseiten.html
  [end]
}

1. Abfragen mit GlobalVar funktionieren nicht innerhalb eines Objekts
2. Es gibt weder "else" noch "end"

Korrekt wäre so:

page.10 < Haupttemplate
Haupttemplate {
  template = FILE  
  template.file = fileadmin/template/templateunterseiten.html
}
[globalVar = TSFE:id = 1]
Haupttemplate.template.file = template.file = fileadmin/template/template.html
[global]

Vorrausgesetzt "Haupttemplate" ist vom Typ "TEMPLATE"

Unbekannter Benutzer ·

Vielen Dank für eure Hilfe, aber es funktioniert immernoch nicht.

Nochmal das komplette Template:

Haupttemplate = TEMPLATE
Haupttemplate {
  template = FILE
  template.file = fileadmin/template/templateunterseiten.html

}
page = PAGE
page.10 < Haupttemplate
#Unnötiges JavaScript entfernen
page.config.removeDefaultJS = 1

[globalVar = TSFE:id = 1]
page.includeCSS.design = fileadmin/template/design.css
Haupttemplate.template.file = fileadmin/template/template.html
[ELSE]
page.includeCSS.design = fileadmin/template/designu.css
[END]

Es funktioniert aber, dass das template der unterseite auf alle übertragen wird. Auf der Seite it id=1 habe ich allerding kein anderes Template. Weiß noch jemand Abhilfe?

jazbo ·

Versuch mal

page.10.template.file = fileadmin/...

anstatt

Haupttemplate.template.file = fileadmin/...

So gehts bei mir.

Noch besser:

ist TSConfig-Feld der Startseite

TCEFORM.pages.layout {
    altLabels {
        0 = Unterseiten
        1 = Startseite
        2 = noch eine Möglichkeit
    }
    removeItems = 3
}

und dann

[globalVar = TSFE:page|layout = 1]
page.10.template.file = fileadmin/template/index_startseite.html
...
[global]

[globalVar = TSFE:page|layout = 2]
page.10.template.file = fileadmin/template/index_noocheoinemoeglichkeit.html
...
[global]

Dann kannst Du in den Seiteneigenschaften unter Erscheinungsbild jeder Seite ein Template zuweisen.

grüße

Chrissli ·

@Norman:
Vielen Dank für den Hinweis, dass war mir nicht bekannt. Man sollte sich halt vorger vergewissern, bevor man die Fresse aufreisst 🙂
Ich lerne jeden Tag was Neues hinzu.

Nochmal zum Problem:

page = PAGE
page.10 < Haupttemplate
... 
[globalVar = TSFE:id = 1]
page.includeCSS.design = fileadmin/template/design.css
Haupttemplate.template.file = fileadmin/template/template.html
[ELSE]
page.includeCSS.design = fileadmin/template/designu.css
[END]

Ich mag mich jetzt nicht gleich wieder zu weit aus dem Fenster lehnen, aber wenn du dein Template nach page.10 kopierts und erst danach das korrekte File zuweist, dann steht in page.10 doch nohc der alte ( falsche ) Wert, oder nicht ?

Unbekannter Benutzer ·
jazbo schrieb

Versuch mal

page.10.template.file = fileadmin/...

Vielen Dank, damit scheint es jetzt zu funktionieren. Ich probier dann erstmal und melde mich bei den nächsten Fehlern wieder.

Unbekannter Benutzer ·

OK, nächstes Problem:

[globalVar = TSFE:id = 5, TSFE:id = 4]
page.10.Haupttemplate.subparts.NAVIU < navilogo
[END]
navilogo = IMAGE
navilogo.file= fileadmin/filling/logo200.png

Für die Seite mit der id 5 funktioniert die ersetzung, für die mit id 4 aber nicht. Gibt es irgendeinen Grund dafür?