Zum Inhalt springen

Template mittels temp.XYZ aufsplitten

Erstellt am 5. Januar 2014 · 4 Antworten · letzte Antwort am 9. Januar 2014

Tags: TYPO3 4.x, Frage

Hans1 ·

Hallo zusammen,

meine Seite läuft schon eine geraume Zeit und auf meinem VServer habe ich neben der produktiven Seite auch eine Entwicklungs-/Test-Seite am Laufen. Diese wird wöchentlich von der produktiven Seite überschrieben (das nur am Rande).

Vor kurzem habe ich mir ein Typo3-Buch gekauft, in dem geraten wird, dass man sein Typo-Script-Template in einem Ordner aufgliedern soll, was ich auch schon habe, allerdings nur sehr bedingt.

Das Template der Seite ist aus HTML mit Markern. Nun würde ich gerne mein PAGE-Objekt im Typo-Script etwas aufsplitten, in dem ich ein neues Typo-Script-Template "MENU" anlege.

page = PAGE
page {
  ...
  10 = TEMPLATE
  10 {
    marks {
      MENU = HMENU
      MENU {
        entryLevel = 1
        1 = TMENU
        1.expAll = 0
        1.wrap = <ol id="menu" class="clearfix">|</ol>
        1 {          
          # Formatierung ohne Klick
          NO {
            wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li>|</li>
          }
          
          # Menüzustand, beim Aufruf eines Submenüpunkts
          ACT = 1
          ACT {
            wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li>|</li>
          }
          
          # Menüzustand des angeklickten Menüpunkts
          CUR = 1
          CUR {
            wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li>|</li>
          }          
          
          # ifsub state: gültig für seiten die unterseiten haben
          IFSUB = 1
          IFSUB {
            wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li>|</li>
          }
        }
      }
    }
  }
}

Mein Typo-Script-Template will ich nun so verkleinern:

page = PAGE
page {
  ...
  10 = TEMPLATE
  10 {
    marks {
      MENU < temp.mainNavigation
    }
  }
}

Das MENU Typo-Script-Template so:

      temp.mainNavigation = HMENU
      temp.mainNavigation {
        entryLevel = 1
        1 = TMENU
        1.expAll = 0
        1.wrap = <ol id="menu" class="clearfix">|</ol>
        1 {          
          # Formatierung ohne Klick
          NO {
            wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li>|</li>
          }
          
          # Menüzustand, beim Aufruf eines Submenüpunkts
          ACT = 1
          ACT {
            wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li>|</li>
          }
          
          # Menüzustand des angeklickten Menüpunkts
          CUR = 1
          CUR {
            wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li>|</li>
          }          
          
          # ifsub state: gültig für seiten die unterseiten haben
          IFSUB = 1
          IFSUB {
            wrapItemAndSub = <li>|</li>|*|<li>|</li>|*|<li>|</li>
          }
        }
      }

Wenn ich nun die Caches leere und die Seite neu lade sehe ich lediglich ###MENU###.

Habt ihr eine Idee, was ich falsch mache? Bei den ganzen Beispielen die ich mir im INet angeschaut habe scheint das in der Art zu gehen.

Vielen Dank und viele Grüße,

Dirk

jenses ·

Wirf mal einen Blick in den "Typoscript Object Browser",
ob dort auch wirklich alle definierten Objekte geladen werden.
Scheint nicht so zu sein...

Schweriner ·

Denk auch an die Reihenfolge des Typoscript. Du kannst kein Element einbinden, wenn es zur Laufzeit noch nicht existiert.

Hans1 ·

Danke für eure Infos. In meinem SysFolder "TypoScript-Templates" habe ich zuerst gesehen, dass das PAGE-Template in der Combo vor dem MENU-Template steht. Deshalb bin ich von einem Fehler in der Reihenfolge ausgegangen, weshalb ich ein SUBMENU-Template angelegt habe, in das ich das SubMenu (äquivalent zu dem oben geposteten) eingefügt habe.

Leider hat das auch nichts gebracht. Ich habe daraufhin im Object-Browser des PAGE-Templates unter PAGE -> 10 -> marks geschaut. Dort tauch der SUBMENU marker gar nicht auf.

Das Template ist zu der Zeit also offenbar noch gar nicht bekannt?! Fehler bekomme ich keine angezeigt.

Habt ihr eine Idee, wie ich sicherstellen kann, dass das SUBMENU- bzw. MENU-Template nach dem PAGE-Template geladen wird? Geht das über alphabetisch oder über die Id?

Vielen Dank und viele Grüße,

Dirk