Zum Inhalt springen

verschachtelte Templates

Erstellt am 29. März 2003 · 13 Antworten · letzte Antwort am 16. April 2003

Tags: Templates & Layouts, Frage

Pozilei ·

Hi Leute,

ich möchte auf einer Unterseite meines Projektes in einen Marker ein neues Template laden und die dortigen Marker mit Inhalten von anderen Pages füllen. Wenn ich für diese Unterseite ein eigenes Template erstelle, indem sich die Marker befinden, funktioniert das auch prima. Nur wenn ich dann ein in das Standard-Template verschachteltes Template lade, wird zwar der Inhalt der HTML-Datei geladen, jedoch die enthaltenen Marker nicht mit den Inhalten gefüllt. Hier das Script:

(design1.html ist das Standard-Template des rootlevels; dlc.html ist das template der Unterseite in dem sich u.a. der Marker _KATEGORIE befindet; dieser soll mit dem Inhalt aus der Page mit der ID 7 gefüllt werden)

loadkategorie = TEMPLATE
loadkategorie.template = FILE
loadkategorie.template.file = fileadmin/vorlagen/dlc.html
loadkategorie.template.workOnSubpart = DLC
# (bei der letzten Zeile bin ich mir nicht sicher, aber wenn ich diese entferne, ändert sich nix...)

seite.10 = TEMPLATE
seite.10 {
template = FILE
template.file = fileadmin/vorlagen/design1.html
workOnSubpart = DOKUMENT

marks._INHALTM < loadkategorie

# Inhalt der Seite ID 7
mySelect = CONTENT
mySelect {
table = tt_content
select.orderBy = sorting
select.pidInList = 7
select.where = colPos=1
select.max = 1
select.begin = 0
}
marks._KATEGORIE < mySelect

dj.​picasso ·

Hi Pozilei,

ausnahmsweise mal am Samstag abend, oh Shit! o.O

Jetzt aber zu Deiner Frage:
Wenn Du - wie Du das nennst - mit verschachtelten Templates arbeitest mußt du auf jeden Fall erst einmal die Checkboxen in der Mitte der Template Seite deaktivieren, damit Deine Einstellungen von der Root Seite auch weiterhin aktiv bleiben.

Warum überschreibst Du die Variablen nicht direkt sondern über Neu-Definition und dann erst der Zuordnung? Das direkte Überschreiben ist meines Erachtens nach übersichtlicher.

Ich kenne zwar Deine Designvorlagen nicht aber an den beiden Zeilen sieht es dann auch irgendwie "unstimmig" aus:

loadkategorie.template.workOnSubpart = DLC
...
...
workOnSubpart = DOKUMENT

Sollte es nicht eher:
loadkategorie.workOnSubpart = DLC
heißen?

Außerdem verwendest Du hier die DLC und nicht DOKUMENT. Damit werden natürlich auch Deine gesamten Einstellungen von der Root aus hinfällig. Ich empfehle dieselben Bezeichnungen, so mache ich es zumindest und es funktioniert generell einwandfrei.

Am Ende Deines Codes fehlt: }

Ciao
Der DJ

Pozilei ·

Hi DJ Picasso!

Tausend Dank für deine schnelle Antwort. Leider konnte ich die letzten Tage nicht an meiner Page arbeiten, daher erst jetzt eine Rückmeldung...

Ich habe alle Tipps von dir befolgt und den Code auch umgestellt, leider ohne Wirkung. Die Designvorlage dlc.html wird zwar korrekt geladen, jedoch der Inhalt von Seite ID 7 nicht in den entsprechenden Marker. Beide Vorlagen haben jetzt <!-- DOKUMENT --> am Anfang und Ende stehen und das Template sieht folgendermassen aus:

seite.10 = TEMPLATE
seite.10 {
template = FILE
template.file = fileadmin/vorlagen/design1.html
workOnSubpart = DOKUMENT

marks._INHALTM = TEMPLATE
marks._INHALTM {
template = FILE
template.file = fileadmin/vorlagen/dlc.html
workOnSubpart = DOKUMENT (kein Unterschied, wenn ich die Zeile entferne)

# Inhalt der Page mit ID 7 im Marker (###_KATEGORIE###) von dlc.html
mySelect = CONTENT
mySelect {
table = tt_content
select.orderBy = sorting
select.pidInList = 7
select.where = colPos=1
select.max = 1
select.begin = 0
}
marks._KATEGORIE < mySelect

# Abschlussklammer Designvorlage dlc
}

# Abschlussklammer Designvorlage design1
}

bk ·

hi pozilei,

mySelect = CONTENT
mySelect {
table = tt_content
select.orderBy = sorting
select.pidInList = 7
select.where = colPos=1
select.max = 1
select.begin = 0
}

muss entweder auserhalb von workOnSubpart = DOKUMENT stehen, oder du füllst deinen marker direkt innerhalb der bearbeitung von DOKUMENT, dann fällt "marks._KATEGORIE < mySelect" weg.

mfg

bk

Pozilei ·

hi bk,

habs mal ein wenig probiert, aber es funzt nicht. Die Methode mit dem direkt am Marker arbeiten finde ich besser, weil die zweite Vorlage ein Tabelle enthält, in die mittels Marker mehrere unterschiedliche Datensätze eingefügt werden sollen...

Ich habs mal so probiert:

marks._KATEGORIE = mySelect
marks._KATEGORIE.mySelect = CONTENT
marks._KATEGORIE.mySelect {
...
}

Pozilei ·

Hmmm, weiss keiner von euch weiter? Habe in der TSRef gesucht, aber da steht nix zu MySelect...

ich bin echt am verzweifeln

bk ·

hi pozilei,

zu myselect kannst du auch nichts finden, da du das element neu definierst.

daher ist auch marks._KATEGORIE = myselcet nicht richtig.

richtig müsste sein:

marks._KATEGORIE = CONTENT
marks._KATEGORIE {
table = tt_content
select.orderBy = sorting
select.pidInList = 7
select.where = colPos=1
select.max = 1
select.begin = 0

}

mfg

Pozilei ·

oh, mann, da hätte man vielleicht auch selbst drauf kommen können... Was würde ich ohne Euch machen. Tausend Dank...

*ne runde virtuelle Cocktails fü alle* #giggle#

talis ·

irgendwie hab ich es jetzt durch die Erklärung hier noch nicht ganz geschnallt ;-)

vielleicht kann ja mir auch wer helfen...

ich hab ein Template wo ###MENUE### und ###INHALT### drinnen steht und ein zweites, welches sich in INHALT öffnen soll, in welchen ich ###TEXT###, etc etc drinnen stehen hab.

normal, wenn ich jetzt noch alles in einem Template drinnen hätte würde ich ja einfach nur folgendes schreiben:

marks.UEBERSCHRIFT = TEXT
marks.UEBERSCHRIFT.field = title

marks.SUBUEBERSCHRIFT = TEXT
marks.SUBUEBERSCHRIFT.field = subtitle

marks.TEXT = CONTENT
marks.TEXT.table = tt_content

wie muss ich es jetzt loesen? ich komm irgendwie mit den Markern durcheinander... habs jetzt schon auf x Versuche probiert zu lösen, aber irgendwie scheitere ich...

und eine Frage hätt ich noch zum allgemeinen Verständnis: wenn ich jetzt möchte, dass auf jeder Seite ein anderes Bild zu sehen ist muss ich dann für jede Seite ein Template anlegen und dort den Pfad zum Bild einfügen und er greift dann immer auf das Subtemplate im haupttemplate zu, oder lieg ich jetzt ganz falsch?

Pozilei ·

@ talis

weder aus deiner beschreibung noch aus dem eingefügten code werde ich schlau und kann dir daher nicht helfen...

@ all

ich blende ja mit folgendem code datensätze von anderen seiten ein:

marks._KATEGORIE = CONTENT
marks._KATEGORIE {
table = tt_content
select.orderBy = sorting
select.pidInList = 7
select.where = colPos=1
select.max = 1
select.begin = 0
}

ist es möglich, solche eingeblendeten datensätze, die am heutigen tage erstellt wurden, farbig zu kennzeichnen (zB mit roter Überschrift oder durch einblendung einer Grafik, zB "New")?

talis ·

so, jetzt wollt ich den vorigen Beitrag umändern... war mir jetzt zu anstrengend... ich versuch es erneut ;-)

so, im folgenden verwende ich folgende Begriffe:
Designvorlage = HTML - Template
Template = in Typo Script Template

es gibt eine root-Designvorlage, in welchen folgende Werte drinnen stehen:
###MENUE### und ###INHALT###

im root-Template hab ich bisher ganz einfach das Menü generiert und den Inhalt mit
INHALT = CONTENT
INHALT.table = tt_content
eingefügt.

ich hoffe so weit wars jetzt verständlich ;-)

so, jetzt möchte ich aber, da sich ein Teil des Inhaltes immer ändern soll (in meinem Fall ist da ein Bild dabei, daher eine neue Designvorlage), also jedes mal wenn sich die Seite ändert. deshalb will ich ein zweites Template, welches sich in den INHALT der root-Designvorlage ladet.
in der neuen Designvorlage habe ich jetzt die Werte
###UEBERSCHRIFT###
###TEXT###
###IMG###

meine erste Frage war: wie bekomme ich denn die Werte die jetzt in der neuen Designvorlage definiert sind in den INHALT der root-Designvorlage.
meine zweite Frage war: wenn ersteres funktioniert. wie bekomme ich jetzt für jede Seite eine andere Grafik rein? kann man Werte der jeweiligen Seite im deren Template definieren und das root-Template holt es sich dann aus dem untergeordneten Template? oder muss man das im root-Template festlegen, wenn ja wie?

so, ich hoffe, das war jetzt etwas verständlicher... wenn nicht, bitte sagen was unverständlich war und ich versuchs auf ein neues ;-)

P.S.: aja und ich hab hier reingepostet, weil ich nicht schon wieder einen neuen Beitrag eröffnen wollte und der Titel dieses Beitrages auch auf mein Problem zutrifft

bk ·

hallo talis,

ich glaube das sollte ganz einfach zu lösen sein.

verstanden habe ich jetzt, dass auf unterschiedlichen seiten andere grafiken in dein designtemplate geladen werden sollen.

du brauchst einfach nur in deiner root-designvorlage folgendes in das setup eingeben:

marks.IMG = IMAGE
marks.IMG.file = {$IMG}

dann noch folgendes in dein constants-feld:

IMG = fileadmin/.../pix/blabla.jpg

danach brauchst du nur noch für die unterseiten ein extension template anlegen und dort im contants-feld für:

IMG = fileadmin/.../pix/blabla.jpg

IMG = fileadmin/.../pix/ein_anderes_bild.jgp schreiben.

mfg

bk

Pozilei ·

ich glaube, folgendes aus in meinem post zuvor ist untergegangen: 😃

ich blende ja mit folgendem code datensätze von anderen seiten ein:

marks._KATEGORIE = CONTENT
marks._KATEGORIE {
table = tt_content
select.orderBy = sorting
select.pidInList = 7
select.where = colPos=1
select.max = 1
select.begin = 0
}

ist es möglich, solche eingeblendeten datensätze, die am heutigen tage erstellt wurden, farbig zu kennzeichnen (zB mit roter Überschrift oder durch einblendung einer Grafik, zB "New")?

talis ·

@bk: vielen Dank, ich versuchs mal ;-) (ich hab etwas zu kompliziert gedacht, denke ich mal ;-))

Nachtrag: Danke funkt bzw. das hast du eh sicher gewusst ;-) - ich habs zumindest zusammengebracht ;-)