Zum Inhalt springen

PID-abhängige Templates verwenden

Erstellt am 20. Oktober 2003 · 19 Antworten · letzte Antwort am 12. März 2004

Tags: Frage

Jobock ·

Hallo,

ich habe irgendwann in diesem Forum etwas zu diesem Beitrag gelesen und finde es nicht mehr. Selbst die Suchfunktion hilft nicht.

Ganz kurz zum Thema:
abhängig von der PID möchte ich verschiedene Templates verwenden. Dabei wäre es auch schön, wenn man angaben wie größer als, kleiner als oder Aufzählung von ID's benutzen könnte.

Hier mal mein Beispielskript:

page = PAGE
page {
  typeNum = 0
  10 = TEMPLATE
  10 {
    template = FILE
  }
}
[globalVar = GP:id > 8] 
page.10.template.file = fileadmin/vorlagen/extra.htm
[else]
page.10.template.file = fileadmin/vorlagen/standard.htm
[end] 
page {
  10 {
    workOnSubpart = DOKUMENT
...

Kann soetwas funktionieren?

jweiland ·

Die Syntax sieht so aus:

[globalVar = TSFE:id = 1]

"grösser" bzw. "kleiner" geht wohl nicht, macht aber auch wenig Sinn, da die Page IDs ja keinen Bezug zum Inhalt haben.
Versuch mal ob eine Aufzählung geht:

[globalVar = TSFE:id = 1,2,3]

Jochen Weiland

Jobock ·

Das mit dem Syntax haut für eine Zahl jetzt hin. Danke dafür. Aber sobald ich eine Aufzählung beginne stimmt es nicht mehr.

[globalVar = TSFE:id = 35,39,72] 
page.10.template.file = fileadmin/vorlagen/liste.htm 
[else] 
page.10.template.file = fileadmin/vorlagen/standard.htm 
[end]

Gibt es eine andere Möglichkeit für die Aufzählung?

jweiland ·

Dann vielleicht über eine Oder-Verknüpfung der Bedingungen, bei vielen Seiten wird das aber lästig:

[globalVar = TSFE:id = 35]||[globalVar = TSFE:id = 39]

Jochen Weiland

Jobock ·

Danke für die Hilfe - hab es gerade probiert und es funktioniert nicht. Allerdings kommt es auch zu keinen Fehlermeldungen und Falschdarstellungen mehr.

Die erste Bedingungen (35) wird erfüllt, nur die weiteren (39 ff) werden ignoriert. Vielleicht muss man eine UND Verknüpfung statt der ODER verwenden? Ich kenn mich bei den Verknüpfungen nicht aus.

Die Anzahl ist kein Problem. Es handelt sich jeweils um 3-7 Seiten. Das ist absolut verträglich.

jweiland ·

Probier es nochmal mit dieser Syntax:

[globalVar = TSFE:id = 35][globalVar = TSFE:id = 39]

Laut Doku werden mehrere Verknüpfungen in einer Zeile automatisch geodert.
Eine Und-Verknüpfung wäre nie gültig, da eine Seite nicht gleichzeitig zwei IDs haben kann.

Jochen

WildFun ·

Hallo,
ist zwar schon ein bischen her, aber jetzt wollte ich mein Problem genauso lösen, wie Ihr es beschrieben habt.

Ich habe u.a. folgende Seitenstruktur

root
-intro #hat eigenes Template
--Seite1
---Seite 1.1
---Seite 1.2
---Seite 1.n
--Seite2
---Seite 2.1
---Seite 2.2
---Seite 2.n

Nun soll auf die Seiten 1 und 2 ein Template verwendet werden, indem eine rechte Spalte mit Marker NEWS ein News-Listing eingefügt werden soll. Funzt prima!

Die darunter liegenden Seiten jedoch, sollen ein anderes Template nutzen - eben eins ohne rechte Spalte und ohne den Marker NEWS. Weil ich die volle Breite brauche.

Habe jetzt Euren Ansatz ins SETUP geschrieben:

page.10 = TEMPLATE
page.10 {
             template = FILE
[globalVar = TSFE:id = 1]
            template.file = fileadmin/templates/templ_a.htm
[else]
            template.file = fileadmin/templates/templ_b.htm
[end]
            workOnSubpart = DOKUMENT

...

Leider greift sich Typo nur templ_b.htm
Die Condition wird ignoriert.

Könnt Ihr mir helfen?
Was mache ich falsch?

Gruß
Fr@nk

TW ·
WildFun schrieb

Hallo,
ist zwar schon ein bischen her, aber jetzt wollte ich mein Problem genauso lösen, wie Ihr es beschrieben habt.

Ich habe u.a. folgende Seitenstruktur

root
-intro #hat eigenes Template
--Seite1
---Seite 1.1
---Seite 1.2
---Seite 1.n
--Seite2
---Seite 2.1
---Seite 2.2
---Seite 2.n

Nun soll auf die Seiten 1 und 2 ein Template verwendet werden, indem eine rechte Spalte mit Marker NEWS ein News-Listing eingefügt werden soll. Funzt prima!

Die darunter liegenden Seiten jedoch, sollen ein anderes Template nutzen - eben eins ohne rechte Spalte und ohne den Marker NEWS. Weil ich die volle Breite brauche.

Habe jetzt Euren Ansatz ins SETUP geschrieben:

page.10 = TEMPLATE
page.10 {
             template = FILE
[globalVar = TSFE:id = 1]
            template.file = fileadmin/templates/templ_a.htm
[else]
            template.file = fileadmin/templates/templ_b.htm
[end]
            workOnSubpart = DOKUMENT

...

Leider greift sich Typo nur templ_b.htm
Die Condition wird ignoriert.

Könnt Ihr mir helfen?
Was mache ich falsch?

Gruß
Fr@nk

hi
wird deine condition denn nicht erfüllt????
ich denke schon

cu
thorsten

WildFun ·

Hallo Thorsten,
ich denke doch. Die Seiten id, wo Typo templ_a einbinden soll, ist 1 (index.php?id=1)

Gruß Fr@nk

kleiner_Drache ·

hi leute,

wenn ich mich nicht recht entsinne dann sind IF / ELSE bedingungen mit [GLOBVAR] nur auserhalb den geschweiften klammern { gültig, also einfach das typoscript etnsprechend umbauen!

gruß
drache

WildFun ·

Hi drache und jweiland,
ja, hat mir jweiland eben auch mitgeteilt.

Aber wie?

Habe schon folgenden Code versucht:
Seite blieb weiß

page = PAGE
page.typeNum = 0
page.stylesheet = fileadmin/templates/verd.css
page.includeLibs.gmenu_layers = media/scripts/gmenu_layers.php
page.includeLibs.tmenu_layers = media/scripts/tmenu_layers.php

[globalVar = TSFE:id = 1]
temp = fileadmin/templates/templ_a.htm
[else]
temp = fileadmin/templates/templ_b.htm
[end]

page.10 = TEMPLATE 
page.10 { 
             template = FILE 
             template.file < temp

             workOnSubpart = DOKUMENT 
...

Also was ist da falsch?
Ich bin fast am Verzweifeln!
Bin extra zum Sport gegangen, ums Hirn freizukriegen
Aber Seite 1 bleibt weiß

Gruß Fr@nk

WildFun ·

Vielen Dank erstmal für Eure Hilfestellungen. Es ist ja immerhin schon weit nach 22:00

Das mit dem "temp.1" habe ich sofort probiert.

Und - : Seite bleibt leider weiß !
Habe die 1 auch mal mit 'ner Buchstabenfolge ersetzt. Leider auch nichts zu sehen.

Gruß Fr@nk

WildFun ·

memory_limit=8M steht in der php.ini
post_max_size 8M steht es in der php Info

sollte wohl ausreichend sein.

Gute Nacht
Fr@nk

jweiland ·

Ändere mal memory_limit auf 6 MB, 8 MB sind für Typo3 auf jeden Fall zu wenig, häufiges Symptom: leere Seite...

Jochen Weiland

WildFun ·

Hallo und guten morgen,
jweiland schäft wohl garnicht? (s. Posting-Zeiten!)

Mir hat der Schlaf geholfen. Ich habe meinen Fehler am Morgen gleich gefunden.

Wenn man ein temp_a.tmpl hinterlegt und ein temp_a.htm aufruft bleibt die Seite natürlich weiß!

Nach der Umbennenung funzt es! 😃

Hier nochmal für alle:

page = PAGE
page.typeNum = 0

....

[globalVar = TSFE:id = 2]
temp.1 = fileadmin/templates/templ_a.tmpl
[else]
temp.1 = fileadmin/templates/templ_b.tmpl
[end]

page.10 = TEMPLATE 
page.10 { 
             template = FILE 
             template.file < temp.1
             workOnSubpart = DOKUMENT 
....

Vielen Dank für Eure Hilfe

Gruß aus Berlin
Fr@nk

jweiland ·

Nein, ich brauche keinen Schlaf :-))

Es musste in meiner Nachricht natürlich 16 MB heissen, nicht 6 MB. Mit 8 MB stösst man früher oder später garantiert auf Probleme.

Jochen Weiland

WildFun ·

ok, gracie
habe ich so mal profilaktisch (ist das richtig geschrieben?) mal so eingetragen.

Vielen Dank nochmal
Fr@nk