Zum Inhalt springen

Template abhängig von Page ID wechseln

Erstellt am 20. Juli 2005 · 13 Antworten · letzte Antwort am 21. Juli 2005

Tags: Templates & Layouts, Frage

zero.​cool ·

Halle Leute,
ich würde gerne über eine Weiche in den Constants, das HTML-Template (file.template) wechseln lassen. Das ganze soll, wie der Titel schon sagt, anhand der PID geschen.
Also:

PID1 >> index.htm
PID2 >> index1.htm

Mein Ansatz sieht so aus:

[global]
[globalVar = TSFE:id=11]
seite.10.template.file = fileadmin/site/index1.htm

So ähnlich hatte das bei tt_products geklappt. Ich hoffe jemand hat eine Lösung.
Gute Nacht
Roman

mstuebner ·
zero.cool schrieb

Ich hoffe jemand hat eine Lösung.

Bin verwirrt, warum nimmst Du dann nicht:

[globalVar = TSFE:id=11]
seite.10.template.file = fileadmin/site/index1.htm

[globalVar = TSFE:id=xx]
seite.10.template.file = fileadmin/site/index2.htm

[globalVar = TSFE:id=xx]
seite.10.template.file = fileadmin/site/index3.htm

[global]
jenses ·

Na, genau das eben funktioniert doch 😉
Da wirst du irgendwo anders einen Fehler haben,
z.B eine Klammer um die Condition.

jenses

Proximo ·

Wär witzig wenn ich den Fehler gefunden hätte (oder du das so geschrieben hast) aber:

Du schreibst:

[global]
[globalVar = TSFE:id=11]
seite.10.template.file = fileadmin/site/index1.htm

Richtig:

[globalVar = TSFE:id=11]
seite.10.template.file = fileadmin/site/index1.htm
[global]

Tip: Schau dir die Fuktion "alias" an!!

MFG Proximo

zero.​cool ·

Also ich weiß nicht was ich falsch mache. Kann es daran liegen, dass ich es lokal auf meinem Heimrechner mache. Vielleicht stimmt was nicht in meinen Einstellungen. Ich schieb das ganze jetzt mal auf meinen Webserver. Ich kann auf jeden Fall ausschliessen, dass ich einen Schreibfehler drin habe.

zero.​cool ·

Hab die ganze Gesichte jetzt auf meinem Webserver. Da funktioniert es auch nicht.
Hier mein verwendeter Code:

[globalVar = TSFE:id=11]
seite.10.template.file = fileadmin/site/index1.htm
[global]
[globalVar = TSFE:id=2]
seite.10.template.file = fileadmin/site/index1.htm
[global]

Eigentlich sollte er jetzt bei den Seiten 11 und 2 das Template index1.htm nehmen. Tut er aber nicht. Bitte nochmals um Hilfe.

zero.​cool ·

Hab es allerdings auch so probiert:

[globalVar = TSFE:id=11]
seite.10.template.file = fileadmin/site/index1.htm
[globalVar = TSFE:id=2]
seite.10.template.file = fileadmin/site/index1.htm
[global]
zero.​cool ·

Falls es jetzt noch jemanden interessiert:

seite.10 = TEMPLATE
seite.10.template = FILE

[globalVar = TSFE:id=11,2,4,5]
seite.10.template.file = fileadmin/site/index1.htm
[else]
seite.10.template.file = fileadmin/site/index0.htm
[end]  
seite.10.workOnSubpart = DOKUMENT

seite.10.marks {

usw......

Mein Fehler war der, dass ich probiert habe in page.seite{...} eine Condition anzuwenden.

Gruß Roman[/b]

Proximo ·

😉 Daraus schließe ich 3 Sachen:

1. Der Schreiber dieses Codes hat sich keinen Gedanken über dessen Funktion gemacht

2. Der Schreiber hat nicht dieses Short-Tutorial gelesen: #27411 (kein Gespame, nur die Antwort auf jeden 3. Post) und somit das Problem wiedermal nicht eingrenzen können

3. Ich muß dringend ein Tutorial über Klammerverhalten schreiben *G*

Anmerkung: Mach dir nichts drauß du bist nicht der einzige sondern einer der Mehrheit :p

MFG Proximo

zero.​cool ·

Ich schwimme immer mit der Masse 😉

Wenn Du mir Punkt 1 genauer erläutern würdest dann wäre ich sehr froh.
Bei Punkt 2 gebe ich Dir recht. Das Tutorial hab ich wirklich nicht gelesen, werde dies aber gleich tun. Ich wollte aber nicht spammen. Hätte wohl besser meinen Beitrag editieren sollen.

Da ich mich aber irgendwie nicht mit der Programmierschiene vertraut machen kann, arbeite ich meistens nach Try & Error. Damit hatte ich bisher auch immer eine akzeptable Lösung gefunden. Ob das immer eine perfekte Lösung ist bezweifel ich aber stark. Vielleicht denke ich beim Programmieren zu schwer oder bin einfach zu dumm.

Vielen Dank trotzdem

Proximo ·

Schlechter Programmierstyle hätte mein alter Progilehrer gesagt... aber:

1. In diesem Kontext befinden sich mehrere Grundlegende Funktionen die ganz Simpel durch die Syntax zu erklären sind

Syntax - Fehler:

page {
[globalVar = TSFE:id=11]
seite.10.template.file = fileadmin/site/index1.htm
[GLOBAL]
}

[globalVar = TSFE:id=11]
Steht also innerhalb 1 Klammer... egal für was diese Klammer steht, es ist falsch weil eine Condition nicht in einer Klammer stehen darf, EGAL warum und wann... es ist FALSCH *g*

Denk - Fehler:

page {
Ist ein übergeordnetes Object, demnach mußt du als Programmierer wissen für was es steht... und wie leicht zu erkennen ist
page = PAGE
page.typeNum = 0
Steht es für ein Pageobject und definiert es als typeNum 0
Demnach ist der Logische nächste Schritt zu überprüfen was "seite" überhaupt für ein Object ist, und spätestens dort wärst du draufgekommen das du es überhaupt nicht initialisiert hast und es keinen logischen zweck erfüllt. Sogar wenn du das übersehen hast wirst du feststellen das 2 Pageobjecte keinen Logischen Sinn erfüllen (is dir warscheinlich klar geworden wo du es zufällig durch bloßes probieren entdeckt hast)

Debug - Fehler:

Der 1. Schritt beim Debuging ist genau an der Stelle wo der Code nicht funktioniert, in gleicher Weise einen anderen Code hinzuschreiben bzw dazuzuschreiben... also:

page {
[globalVar = TSFE:id=11]
seite.10.template.file = fileadmin/site/index1.htm
seite.20 = TEXT
seite.20.value = ID 11 aktiv
[GLOBAL]
seite.30 = TEXT
seite.30.value = ID nicht gesetzt
}

Sieht simpel aus? ist es auch... aber so weißt du das es nicht geht.. und kannst den Fehler eingrenzen!

2. Hättest du dieses Tutorial beachtet wäre der Fehler unmöglich gewesen da in ein Extensiontemplate "seite.20..." oder "page.10..." keinen Sinn erfüllt... somit hättest du zwangsläufig mit erweiterter Syntax arbeiten müssen... bei mir schaut mein Autopharser demnach so aus:

# Configuring the Auto-Parser for main template:
plugin.tx_automaketemplate_pi1 {

  # Read the template file:
  content < plugin.tx_tmplselect_pi1
  content.defaultTemplateFileName = template_1.html
   
  elements {
     BODY.all = 1
     BODY.all.subpartMarker = DOCUMENT_BODY
     HEAD.all = 1
     HEAD.all.subpartMarker = DOCUMENT_HEADER
     HEAD.rmTagSections = title
     TD.all = 1
     DIV.all = 1
  }
   # Prefix all relative paths with this value:
   relPathPrefix = fileadmin/template/main/
}

Hinweiß: Wurde seit meinen 1. Typoversuchen nichtmehr geändert, dürfte demnach aus irgendeinem Tutorialbeispiel sein

Einfachheitshalber könnte man den Inhalt auch so definieren:

temp.seiteninhalt = CONTENT
temp.seiteninhalt.template.file = fileadmin/site/index1.htm

Da im Haupttemplate dann nurnoch

page.10 < temp.seiteninhalt

steht, hast du das Problem nichtmehr *g*

3. ... siehe 1 😉

MFG Proximo

zero.​cool ·

Okay denke ich hab das erstmal ausgenommen. Verstehen tue ich zwar noch nicht, aber ich werde mir Mühe geben. Ich denke an mir verzweifelt jeder Programmierlehrer. Ich denke der Fehler wird bei mir nicht mehr vorkommen. Und mach Dir keine weiteren Mühen mir das zu erklären. Es ist hoffnungslos.... 🙂

Trotzdem vielen Dank und alles Gute
Roman

Proximo ·

Jeder Programmierer fängt mal so an 😉 die Frage ist nur ob man es gleich am Anfang schafft sich einen sinnvollen Programmierstyle anzugewöhnen

MFG Proximo #giggle#