Zum Inhalt springen

Kann man im Typoscript Page-Objekt eine IF-Abfrage machen?

Erstellt am 25. Januar 2020 · 2 Antworten · letzte Antwort am 27. Januar 2020

Tags: URLs & Routing, TYPO3 9, Frage

marion-j ·

Hallo,
kann in einem Page-Objekt eine IF-Abfrage gemacht werden?
Wir haben in unserer Typo3-Installation eine zweite Domain hinzugefügt (Multidomain) und möchten nun im Setup unterscheiden welche Webseite gerade geladen ist und dann die dazugehörige Navigation laden.

Unser Typoscript sieht wie nachfolgend aus. Damit werden aber auf beiden Webseiten beide Navigationen geladen, was die Seitenladezeit natürlich erhöht. Über die Konstanten übergeben wir jeweils die RootID {$website.rootid} der Webseite. Kann man im Typoscript irgendwie eine IF-Abfrage einbauen, damit anhand der RootID die passende Navi geladen wird?

page = PAGE
page.typeNum = 0
page.10 = FLUIDTEMPLATE
page.10 {
...
dataProcessing {
# Mainnavigation Website 1
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
    special = list
    special.value = 8,7,6,5,4,753
    levels = 3
    includeSpacer = 1
    as = mainnavigation_1
}

# Mainnavigation Website 2
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
    special = list
    special.value = 2
    levels = 2
    as = mainnavigation_2
}

}
Teisinger ·

Also eigentlich sollte es die Seitenladezeit so gut wie nicht beeinflussen, da Cache.
(nur beim Aufbau des Caches...)

Nutzt ihr den schon eine Extension für euer Theme?
Dann mach doch einfach 2 TypoScript Files daraus - also jeweils eins für jedes Menü und binde auf der jeweiligen Rootseite nur das ein das verwendet wird.

Hinweis:
wir mussten bisher die Erfahrung machen (wenn 2 Webseiten die zur selben Company gehören und eigentlich(!) gleich aussehen sollten), das dann im Endeffekt doch so viel unterschiedliches (vor allem in nachhinein) gewünscht wird, das es besser ist die Themes generell zu trennen...

Julian.​Hofmann ·

IMO haben alle Dataprocessors des Core eine if-Eigenschaft, auf jeden Fall aber der MenuProcessor:

page.10 {
...
dataProcessing {
# Mainnavigation Website 1
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
if.equals = {$website.rootid} 
if.value.data = GETENV:TYPO3_HOST_ONLY
...