Zum Inhalt springen

je nach navigationsebene stylesheet ändern

Erstellt am 21. März 2006 · 12 Antworten · letzte Antwort am 22. März 2006

Tags: Frage

Unbekannter Benutzer ·

hi,

habt ihr einen konkreten tipp, wie ich je nach momentaner navigationsebene, sprich entryLevel ein unterschiedliches CSS einbinden kann?

also entryLevel = 0 soll anders aussehen als entryLevel = 1

gruß

Unbekannter Benutzer ·

nach deinen stichwörtern habe ich diese tipps gefunden:

// mit eckigen Klammern:
[treeLevel = 0]
page.20 = TEXT
page.20.value = Nur auf root-Ebene zu sehen
[end]

// mit if:
page.20 = TEXT
page.20.value = Nur auf root-Ebene zu sehen
page.20.if.value.data = level : 1
page.20.if.equals = 0

// aktuelle Ebene anzeigen - Zahl hinter level ist egal aber muss vorhanden sein !
page.30 = TEXT
page.30.data = level : 1

auf http://linuxwiki.de/Typo3TypoScript

Unbekannter Benutzer ·

jetzt habe ich es gelöst mit folgendem script:

[treeLevel = 2]
seite.includeCSS {
	file1 = fileadmin/template/main/css/layout2.css
	file1.media = screen
	file2 = fileadmin/template/main/css/style.css
	file2.media = screen
}
[else]
seite.includeCSS {
	file1 = fileadmin/template/main/css/layout.css
	file1.media = screen
	file2 = fileadmin/template/main/css/style.css
	file2.media = screen
}
[end]

aber nur bis zum ersten aufruf, der 2te aufruf der aus dem cache kommt liefert mir wieder layout.css zurück und nicht layout2.css im treelevel 2

Unbekannter Benutzer ·

schaut doch gut aus ... cacheing Probleme gibts da eigentlich keine. Probier mal noch im ELSE Bereich zuvor das css zu löschen

seite.includeCSS >

Viele Grüße
Niki

Unbekannter Benutzer ·

leider bringt das keine abhilfe, wenn ich einen refresh mache oder andere seiten innerhalb treeLevel 2 aufrufe, bleibt alles in ordnung, nur sobald ich in treelevel 1 klicke und dann wieder zurück auf Level 2 gehe, bekomme ich wieder nur layout.css eingebunden.

ich habe auch diese variante noch probiert:

seite.includeCSS {
	file1 = fileadmin/template/main/css/layout.css
	file1.media = screen
	file2 = fileadmin/template/main/css/style.css
	file2.media = screen
}

[treeLevel = 2]
seite.includeCSS >
seite.includeCSS {
	file1 = fileadmin/template/main/css/layout2.css
	file1.media = screen
	file2 = fileadmin/template/main/css/style.css
	file2.media = screen
}
[end]
Unbekannter Benutzer ·

hm also am cache liegts nicht ... mach zum debuggen doch erst mal eine Textausgabe im Content und schau ob die treelevels richtig angezogen werden. CSS Pfade stimmen alle, nehme ich an?

Viele Grüße
Niki

Unbekannter Benutzer ·

die pfade zum css stimmen, sonst würden die layouts ja beim ersten aufruf nicht korrekt aufgerufen werden.

wie mache ich denn eine textausgabe vom treeLevel?

fuss · · Beste Antwort

wie mache ich denn eine textausgabe vom treeLevel?

steht doch in deinem eigenen posting 😉

[treeLevel = 0]
page.20 = TEXT
page.20.value = Nur auf root-Ebene 0 zu sehen
[end]

gruss, fuss

Unbekannter Benutzer ·

achso ich dachte eigentlich daran den treeLevel auszugeben wie bei PHP ein echo $treeLevel ;D

naja jedenfalls stimmt das treeLevel der jeweiligen ebenen.

hier mal das ganze visualisiert

1
1.1
1.2

2
2.1
2.2

Das Webseitenlayout für 1.x und 2.x soll anders aussehen als das von 1 und 2

oben die methode setzt das auch (fast) korrekt um.

Beispiel: Cache ist gelöscht.

Ich klicke auf 2: layout.css wird geladen für die Hauptpunkte

Ich klicke auf 2.2 layout2.css wird geladen für die zweite navigationsebene.

Ich klicke auf 2.1: weiterhin alles in Ordung. Ich klicke wieder auf 2. weiterhin alles in Ordnung.

JETZT: Klicke ich wieder auf 2.2 oder 2.1 (ist egal auch 1.x) und es wird nur noch egal auf welchen seiten layout.css angezeigt sprich gerendert!
[/u]

Meine Baumstruktur:

/ROOT
/ROOT/HOME
/ROOT/ÜBER UNS
/ROOT/ÜBER UNS/VEREIN
[...]

Unbekannter Benutzer ·

bis auf weiteres glaube ich dass folgender code mein problem gelöst hat:

[treeLevel = 0,1]
seite.includeCSS >
seite.includeCSS {
	file1 = fileadmin/template/main/css/layout.css
	file1.media = screen
	file2 = fileadmin/template/main/css/style.css
	file2.media = screen
}
[end]

[treeLevel = 2]
seite.includeCSS >
seite.includeCSS {
	file1 = fileadmin/template/main/css/layout2.css
	file1.media = screen
	file2 = fileadmin/template/main/css/style.css
	file2.media = screen
}
[end]

mit der anderen methode hat er irgend ein problem sei es caching oder sonst was.