Zum Inhalt springen

Anderes Template für Seiten, die Unterseiten besitzen

Erstellt am 13. Juni 2011 · 9 Antworten · letzte Antwort am 15. Juni 2011

Tags: Frage

Ryk ·

Hallo zusammen,

ich möchte, dass TYPO3 automatisch zwischen zwei Templates (A mit Subnavigation & B ohne Subnavigation) wählt abhängig davon, ob Unterseiten vorhanden sind oder nicht.

Nach langer Recherche kommen folgende Lösungen nicht wirklich in Frage:

- hardcodierte Seiten-IDs mit Hilfe von Conditions in Ext-Templates oder allgemein Ext-Templates bei Seiten, die Unterseiten besitzen
- Seitenlayout auswählbar über Backend-Layout

Ich denke, dass diese Lösung schon ziemlich Nahe an meiner Vorstellung dran ist, aber ich möchte nicht, dass zwischen unterschiedlichen CSS-Dateien gewählt wird, sondern Templates:

http://www.typo3-dresden.de/Forum.100.0.html?&tx_mmforum_pi1[action]=list_post&tx_mmforum_pi1[tid]=10

Es geht hauptsächlich darum, dass bei Seiten, die keine Unterseiten besitzen die volle Breite für Content benutzt wird und kein Weißraum frei steht.

Vielen Dank im Voraus für eure Hilfe und Vorschläge. 🙂

Testpagetester ·

templates bestehen ja praktisch auch aus css dateien,
du müsstest also tatsächlich nur die css dateien der templates verlinkein und schwupps,
schon hast du verschiedene temps für
sub- und normale menus 🙂

Ryk ·

Vielen Dank für deine Antwort. Du hast Recht, aber ich dachte, dass ein automatischer Template-Switch die bessere Variante ist. Es gibt ja auch die Möglichkeit mit TypoScript zu überprüfen, ob eine Spalte Inhalte hat oder nicht und je nachdem unterschiedliche Templates zu benutzen.
Irgendwie dachte ich, dass mein Vorhaben ohne Probleme möglich ist. In den Büchern finde ich leider auch nichts dazu, obwohl es kein Sonderfall ist. :/

Ich dachte an sowas wie:

page = PAGE
 
##Unterseiten vorhanden
temp.alt_template = COA
temp.alt_template.10 = TEXT
temp.alt_template.10 {
    if.isTrue.numRows {
        table = pages
        select {
            pidInList.data = TSFE:id
        }
    }
    
    template = FILE
    template.file = fileadmin/templates/template_A.html
}
 
##keine Unterseiten vorhanden
temp.alt_template.20 = TEXT
temp.alt_template.20 {
    if.isFalse.numRows {
        table = pages
        select {
            pidInList.data = TSFE:id
        }
    }
    
    template = FILE
    template.file = fileadmin/templates/template_B.html
 
 
}
Testpagetester ·

vielleicht solltest du einem administrator/moderator eine frage zu diesem thema stellen, er kann dir höchstwarscheinlich helfen 🙂

Mods/Admins:

m.helmich
steffenk
SLAng

die sollten dir helfen können 😉

Ryk ·

Ich wäre auch zufrieden, wenn einer der Profis kurz sagen könnte, ob es technisch möglich ist oder nicht. Eventuell muss ich dann doch den Weg über verschiedene Stylesheets gehen. 🙂

zeroalpha ·

Ich bin zwar wahrlich kein Profi, aber imo kann der Code so nicht funktionieren. Iwas fehlt mir noch.

irgendwas mit page.10.template oder so... *alle mal herzhaft lachen, wenn ich jetzt daneben liege und mich als noob oute 😃

Ansonsten müsstest du ja iwo noch eine geschweifte Klammer haben und was sich bei mir im Hinterkopf eingebrannt hat ist keine Conditions innerhalb geschweifter Klammer!!

Keine Ahnung ob es weiterhilft.

Ryk ·

Warum auslachen? Ich kann es nicht besser, und wenn, wäre es immer noch kein Grund jemanden auszulachen. 🙂

Mit den geschweiften Klammern sieht es folgendermaßen aus: Die Condition darf nicht innerhalb von geschweiften Klammern stehen, aber innerhalb der Condition dürfen diese verwendet werden.

Ich habe gestern Abend noch lange probiert und versucht das erstellte "Objekt" in "page.10" reinzukopieren, aber dann überschreibt man halt alles, was auch nicht sinnvoll ist. Das TYPO3 Cookbook hat immer coole Ansätze und Lösungen, aber etwas zu diesem Fall habe ich nicht gefunden. Persönlich denke ich, dass wenn ich andere CSS-Dateien verwenden kann, dann sollte ich auch ohne Probleme verschiedene Templates wählen können, aber vielleicht machts es technisch keinen Sinn. 🙂

Normalerweise ändere ich Templates mit (mit Ext Templates):

page.10.template.file = fileadmin/templates/my_template.html