Zum Inhalt springen

Verschiedene Templates die xxte :-(

Erstellt am 23. November 2005 · 9 Antworten · letzte Antwort am 23. November 2005

Tags: Templates & Layouts, Frage

funk ·

Hallo Forum,

von vorneherein erstmal sorry das ich euch mit diesem leidigen Thema belaste.
Aber ich bekomm noch nen Vogel hier.
Ich habe auf der Startseite mein Template wie folgt eingebunden:

# Configuring the Auto-Parser for main template:
plugin.tx_automaketemplate_pi1 {
# Read the template file:
content= FILE
content.file = fileadmin/template/main/start.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.subpartMarker = DOCUMENT_HEADER
HEAD.rmTagSections = title
TD.all = 0
}
# Prefix all relative paths with this value:
relPathPrefix = fileadmin/template/main/
}

Da ich 2 Layouts habe (Startseite und Rest) möchte ich nur auf der Startseite dieses Template benutzen.

Hab schon templates für die Unterseiten angelegt und alles Mögliche ausprobiert. Ich durchforste seit vorgestern dieses Forum und habe alles versucht... ohne Erfolg :-(

Kann mir jemand den Finalen Tipp geben?
Wär super klasse.

Danke schonmal,
Gruß

Tim

Unbekannter Benutzer ·

2 Möglichkeiten:

1. Du legst die Seitenstruktur wie folgt an:
- SITES
-- Home
-- Ueber uns
--- da gibts
--- viel zu sagen
-- Was auch immer
-- Kontakt
=> in SITES packst Du Dein Template das für alle Seiten (ausser home) gelten soll
=> in Home legst Du ein extension template an, clear setup und constants ("click here to edit whole template record")

2. Du packst alles in ein TS Template und definierst über eine Condition, welcher Teil für die Startseite gelten soll. Stichwort: GlobalVar = TSFE:id = 123

Viele Grüße
Niki

funk ·

Hi Niki,

danke für die Antwort!
Hatte das auch schon probiert.
Momentan sieht das ganze dann so aus:

# Configuring the Auto-Parser for main template:
plugin.tx_automaketemplate_pi1 {
# Read the template file:
content= FILE
[GlobalVar = TSFE:id = 1]
content.file = fileadmin/template/main/start.html
[else]
content.file = fileadmin/template/main/unterseite.html
[global]
# 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.subpartMarker = DOCUMENT_HEADER
HEAD.rmTagSections = title
TD.all = 0
}
# Prefix all relative paths with this value:
relPathPrefix = fileadmin/template/main/
}

Jetzt werden die HTML Templates trotzdem nicht geswitcht und dazu kommt das mein Stylesheet unter den Tisch fällt... AARGHHH!!

Irgendein Vorschlag?

Gruß
Tim

toyde ·

Wie sieht denn überhaupt dein Page-Tree aus? Weshalb definierst du nicht einfach ein einzelnes TypoScript-Template für die betroffene Seite?

Unbekannter Benutzer ·

und überschreibe alles in Deinem globalVar Bereich noch mal, bevor Du neu einfügst

mit dem Autoparser arbeite ich nicht da bei XHTML / CSS Seiten das nicht notwendig ist, aber ich könnte mir vorstellen dass ein content.file > innerhalb Deines Global Var Bereichs funktioniert. Oder auch ein plugin.tx_automaketemplate_pi1 > und danach erneut zuweisen.

Viele Grüße
Niki

funk ·

Hi Toyde,

hab mein Standarttemplate genommen und das kopiert und den HTML Templatenamen geändert.
Danach hatte ich nur eine weisse Seite ohne Inhalt.

Hier mal die Hirarchie:
Startseite -> Template Start
--philo -> Template Unterseite
--firma -> Template Unterseite
--service -> Template Unterseite
--kunden -> Template Unterseite
--karriere -> Template Unterseite
--akademie -> Template Unterseite
--kontakt -> Template Unterseite

plus etwaige Unterseiten

Hier mal mein TS Template:

#Spam Protected Emails
config.spamProtectEmailAddresses = 1
config.spamProtectEmailAddresses_atSubst = (at)

config.disablePrefixComment = 1

# Default Styles kicken
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE =
plugin.tx_clcompanydatabase_pi1._CSS_DEFAULT_STYLE =
plugin.tt_news._CSS_DEFAULT_STYLE =
plugin.tx_calendar_pi1._CSS_DEFAULT_STYLE =

# Umstellung auf XHTML
config.doctype = xhtml_trans 
config.xhtml_cleaning = all 

# Standardsprache festlegen
config.locale_all = de_DE@euro

#Ausgabe der jeweiligen Parsezeit am Ende des Quelltextes aller Seiten 
#page.config.debug=0

# Configuring the Auto-Parser for main template:
plugin.tx_automaketemplate_pi1 {
# Read the template file:
content= FILE
[GlobalVar = TSFE:id = 1]
content.file = fileadmin/template/main/start.html
[else]
content.file = fileadmin/template/main/unterseiten.html
[global]
# 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.subpartMarker = DOCUMENT_HEADER
HEAD.rmTagSections = title
TD.all = 0
}
# Prefix all relative paths with this value:
relPathPrefix = fileadmin/template/main/
}

# Menu 1 cObject
temp.menu_1 = HMENU
# First level menu-object, textual
temp.menu_1.1 = TMENU
temp.menu_1.1 {
# Normal state properties
NO.allWrap = <div class="menu1" onmouseover="this.className='menu1_over'" onmouseout="this.className='menu1'"><div class="menuv1-level1-no" onmouseover="this.className='menuv1-level1-no_hover'" onmouseout="this.className='menuv1-level1-no'"> | </div></div>
# Enable active state and set properties:
ACT = 1
ACT.allWrap = <div class="menu1"><div class="menuv1-level1-no_act"> | </div></div>
}

# Second level menu-object, textual
temp.menu_1.2 = TMENU
temp.menu_1.2 {
# Normal state properties
NO.allWrap = <div class="menuv1-level2-no" onmouseover="this.className='menuv1-level2-no_hover'" onmouseout="this.className='menuv1-level2-no'"> | </div>
# Enable active state and set properties:
ACT = 1
ACT.allWrap = <div class="menuv1-level2-no_act"> | </div>
}

# 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_pi1
# Select only the content between the <body>-tags
workOnSubpart = DOCUMENT_BODY

# Menu einfügen (###menu_1###)
subparts.menu_1 < temp.menu_1

# Sprachwahl + Kontakt & Impressum Menu einfügen (###SPRACHE###)
subparts.SPRACHE= PHP_SCRIPT
subparts.SPRACHE{
file = media/scripts/sprachen.php
}
# Inhalt unterm Menueinfügen (###INHALT_START###)
subparts.INHALT_START = CONTENT
subparts.INHALT_START < styles.content.getBorder
subparts.INHALT_START.select.orderBy = sorting

# Inhalt mitte infügen (###INHALT_MITTE###)
subparts.INHALT_MITTE= CONTENT
subparts.INHALT_MITTE< styles.content.get
subparts.INHALT_MITTE.select.orderBy = sorting
subparts.INHALT_MITTE.stdWrap.required = 1
subparts.INHALT_MITTE.stdWrap.wrap = <div class="inhalt_mitte">|</div>

# Inhalt rechts einfügen (###INHALT_RECHTS###)
subparts.INHALT_RECHTS = CONTENT
subparts.INHALT_RECHTS < styles.content.getRight
subparts.INHALT_RECHTS.select.orderBy = sorting
subparts.INHALT_RECHTS.stdWrap.required = 1
subparts.INHALT_RECHTS.stdWrap.wrap = <div class="inhalt_rechts">|</div>

# Inhalt links einfügen (###INHALT_LINKS###)
subparts.INHALT_LINKS= CONTENT
subparts.INHALT_LINKS< styles.content.getLeft
subparts.INHALT_LINKS.select.orderBy = sorting
subparts.INHALT_LINKS.stdWrap.required = 1
subparts.INHALT_LINKS.stdWrap.wrap= <div class="inhalt_links">|</div>

# Drucken, Tip-a-Friend und Seitenanfang zeigen (###INHALT_UNTEN###)
subparts.INHALT_UNTEN= PHP_SCRIPT
subparts.INHALT_UNTEN{
file = fileadmin/user_templates/inhalt_unten.php
}
}

# 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_pi1
# 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

###############
# Platzhalter für Sprachauswahl belegen
###############
# SprachVariable L initialisieren
config.linkVars = L

# Standardsprache UID 0 -> Deutsch
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE

# Deutsch, sys_language.uid = 1
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en
[global]

plugin.tt_news.pageTypoLink.parameter.current = 32
plugin.tt_news.archiveTypoLink.parameter = 32
tt_content.text.10.field = 
tt_content.text.10.field = bodytext
tt_content.text.10.wrap = <div class="bodytext"> | </div>

tt_content.text.default {
  20 = TEXT
  20.field = bodytext
  20.wrap = | <br />
  20.brTag = <br />
  20.parseFunc {
    makelinks = 1
    makelinks.http.keep = path
    makelinks.http.extTarget = _blank
    makelinks.mailto.keep = path
    tags {
      link = TEXT
      link {
        current = 1
        typolink.extTarget = _blank
        typolink.target={$cLinkTagTarget}
        typolink.wrap = <b><font color="red">11|</font></b>
        typolink.parameter.data = parameters : allParams
      }
      typolist < tt_content.bullets.default.20
      typolist.trim = 1
      typolist.field >
      typolist.current = 1
    }
  }
} 

###############
# Tell-a-Friend
###############

#displaying the tip-link
subparts.tip= TEXT
subparts.tip< temp.tipafriend 

###############
# SUCHE
###############

# Suche
# Formular - Ziel auf self
tt_content.search.30.target = _self
tt_content.search.30.dataArray.10.label >

# Suchfelderauswahl wird hidden gestellt und Suche ist auf header, bodytext und imagecaption gesetzt
tt_content.search.30.dataArray.20.type = scols=hidden
tt_content.search.30.dataArray.20.valueArray >
tt_content.search.30.dataArray.20.value = tt_content.header-bodytext-imagecaption

# Inputfeld angepasst - Inputfeldgröße und Klasse zugeordnet
tt_content.search.30.params.input = class="inpfeld" size="15" 

# Submit Button angepasst - Bezeichnung und Klasse zugeordnet
tt_content.search.30.params.submit = class="inptBtn" 
tt_content.search.30.dataArray.40.value = Suchen

# Layout aus Tabelle genommen
tt_content.search.30.stdWrap.wrap = |
tt_content.search.30.layout = ###LABEL### ###FIELD###
tt_content.search.30.COMMENT.layout = ###LABEL###
tt_content.search.30.renderObj.10.typolink.target = _self

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class = 

tt_content.stdWrap.space = 0
tt_content.stdWrap.dataWrap =

tt_content.image.20.caption >
tt_content.image.20.captionSplit = 1
tt_content.textpic.20.caption >
tt_content.textpic.20.captionSplit = 1
tt_content.textpic.20.spaceBelowAbove = 0
tt_content.image.20.spaceBelowAbove = 0
tt_content.header.stdWrap.wrap = |
tt_content.stdWrap.wrap = |
tt_content.stdWrap.space = 0|0
tt_content.header.20.stdWrap.wrap = |
lib.stdheader.10.1.wrap2 = |
lib.stdheader.stdWrap.space = |

Wie sieht denn überhaupt dein Page-Tree aus? Weshalb definierst du nicht einfach ein einzelnes TypoScript-Template für die betroffene Seite?

Hatte ich wie gesagt auch schon getestet mit dem Erfolg das meine Startseite ging aber die Unterseiten blieben weiss...

Verdammisch!
Ich blick gerade nicht mehr durch...

Danke und Gruß
Tim

funk ·

Hi Niki,

da ich eigentlich auch ausschliesslich mit XHTML & CSS arbeite ist der Autoparser für mich ja wahrscheinlich auch unnötig.
Kann ich den gefahrlos rausschmeissen ohne das ich mehrere Stunden investieren muss oder kann das Probleme geben?
Irgendwie hab ich den Eindruck das es ohne vielleicht besser geht oder sogar funktioniert. ;-)

Hast du da erfahrung?

Gruß
Tim

Unbekannter Benutzer ·

Hi Tim,

da ich ohne Autoparser arbeite hab ich da keine Erfahrung 😉 Wobei ich vermute dass das schon Streß macht (Template neu schreiben).

Der Vorteil ohne Autoparser und ohne eingebundenes HTML Template ist, dass man einzelne Seitenelemente wunderbar ein- und ausschalten kann. Eben Nutzung der Kaskadierung von TypoScript Templates, die ich bei HTML Vorlagen nur bedingt nutzen kann.

Das TS Template schaut dann ungefähr so aus (beispielhaft):

page.wrap = <div id="main"> | </div>

page {
     10 = IMAGE
     10.file = fileadmin/logo.jpg
     10.wrap = <div id="header"> | </div>
}

page.20 = COA
page.20 {
     wrap = <div id="content"> | </div>

     1 = TEXT
     1.field = title
     1.wrap = <div id="ueberschrift"> | </div>

     2 = CONTENT
     2 > styles.content.get
     2.wrap = <div id="normal"> | </div>
}

page.30 = ...... etc etc

So als kleiner Gedankenanstoß 🙂 Super Sache, nie wieder anders 8-)

Viele Grüße!
Niki

toyde ·

...

Startseite -> Template Start (Seitentyp: Shortcut)
--philo -> Template Unterseite
--firma -> Template Unterseite
--service -> Template Unterseite
--kunden -> Template Unterseite
--karriere -> Template Unterseite
--akademie -> Template Unterseite
--kontakt -> Template Unterseite
--neue Startseite (bekommt das "schwarze-Schaf" Template)

Mach das doch so, bevor Du den Doktortitel holst.
In der neuen Startseite kannst du Saltos und Templates ausprobieren, da es auf den Seitenbaum keine Auswirkung hat (ausser die Seite selbst). Der Shortcut der Root-Seite zeigt dann logischerweise auf die neue Startseite.

edit:
Habe so eine Befürchtung, dass die Frage noch kommt: damit die neue Startseite selbst nicht in der Navigation auftaucht, einfach auf not-in-menu setzen.

funk ·

Hallo toyde, niki,

also! Mein Template reagiert auf den subpart ###DOCUMENT_BODY### mit einer blanken seite. #angry#
Eigentlich arbeite ich ja laut TS Template in diesem Subpart, aber die Seite mag nur ohne. Warum auch immer, im Moment macht mir das keine Schwierigkeiten... *3-mal-auf-holz-klopf*

D.h. Template wechseln funzt HURRAA!

Jetzt hab ich nur nicht die richtige Menuebene auf meiner neuen Startseite.
Da ich da ja logischerweise keine Unterseiten angelegt habe, wird kein Menupunkt angezeigt.
Bin aber vorhin über irgendwas gestossen um die menueben zurückzusetzen...

werd dann nochmal suchen und weiter pfriemeln.

Bis dahin auf jeden Fall vielen Dank!

Gruß
Tim