Zum Inhalt springen

Menüpunkte umsortieren wenn aktiv

Erstellt am 25. Mai 2009 · 6 Antworten · letzte Antwort am 10. Juni 2009

Tags: Frage

delta3417 ·

Hallo zusammen,

ich habe folgendes Problem:

Ich habe eine sehr lange Seitenliste die dananch auch wieder Unterseiten beeinhaltet.

Nun möchte ich, wenn man einen Menüpunkt auswählt, das dieses danach an die oberste Stelle der Ebene im Menü rutscht.

Hier ein Beispiel:

so sieht es bis jetzt aus:

- Seite 1
- Seite 2
- Seite 3
- Seite 4
-- Seite 4.1
-- Seite 4.2 (aktiv)
-- Seite 4.3
- Seite 5

so sollte es aussehen:

- Seite 4
-- Seite 4.1
-- Seite 4.2 (aktiv)
-- Seite 4.3
- Seite 1
- Seite 2
- Seite 3
- Seite 5

Es soll also oben zuerst der aktive Seitenbaum angezeigt werden und danach die restlichen Einträge darunter.

Wäre super, wenn es dafür eine Lösung gibt.

Viele Grüße
Marvin

Julian.​Hofmann ·

Hallo Marvin.

Sollte klappen, indem Du den aktiven Menüpunkt aus dem normalen Menü rausnimmst (excludeUidList), und diesen dann getrennt als eigenes Menu ober platzierst. Passend gewrappt oder in ein COA verpackt odgl. lässt sich das ganze sicherlich auch weiterhin als unordered List zusammenbasteln.

Viele Grüße
Julian

delta3417 ·

Hallo Julian,

danke erstma für deine schnelle Antwort.
Das mit dem excludeUidList funktioniert super.
Nun stelle ich mir dir Frage, wie ich ein zusätzliches Menü erstelle.
Komme da irgendwie nicht weiter.

Ich habe einen weiteren Marker erstellt und spreche diesen an.
Nur komme ich nicht weiter, wie ich diesem Punkt automatisch den aktuellen Seitenbaum übergebe. Es soll ja nur der aktive Seitenbaum angezeigt werden.

Gruß
Marvin

Julian.​Hofmann ·

Oh, dachte, das das einfacher/eleganter zu lösen ist. Aber mit einem Trick dürfte es klappen:

1. Den Menüpunkt der aktuellen Seite von hand erzeugen, d.h. ohne HMENU
2. Das Untermenu kann dann als HMENU mit entryLevel=2 generiert werden

temp.aktuellePunkt = TEXT
temp.aktuellePunkt.typolink.parameter.data = TSFE:id
temp.aktuellePunkt.append = HMENU
# ...
sealover ·

Hallo,

ich schlage mich ebenfalls mit der Idee herum, den aktuellen Menüpunkt (obereste Ebene bei bis zu 5 Unterebenen) nach oben zu verlagern, scheitere aber kläglichst.

Das Menü baut sich simpel auf:

temp.menu_1 = HMENU
temp.menu_1.entryLevel = 0
temp.menu_1.1 = TMENU
temp.menu_1.1 {

ACT = 1
ACT.allWrap = <div class="menu1-level1-act"> | </div>
ACT.stdWrap.htmlSpecialChars = 1


NO.allWrap = <div class="menu1-level1-no"> | </div>
NO.stdWrap.htmlSpecialChars = 1

}

Jeglicher Versuch, dieses so umzubauen, dass zuerst der aktive Punkt mit Unterpunkten und dann das weitere Menü angezeigt wird, scheiterte. Auch die hier genannten Tipps haben mir irgendwie nicht weitergeholfen.

Wäre schön, wenn ihr mir einen Ansatz nennen könntet.

lg, Wolfgang

etux ·

Guten Morgen.
Ich weiß nicht, ob das Euch direkt hilft, aber vielleicht bringt es Euch auf gute Ideen. Ich baue gerade eine kleine Website mit einer Eine-Ebene-Navigation. Von Navigation im klassischeen Sinne kann man eigentlich nicht sprechen, da die gesamte Site aus einer Definitionsliste besteht in der dann weitere verschachtelt sind. Die NO-Menüpunkte sind in den dd-s als h2-Überschriften, der aktuelle (CUR) Menüpunkt in dem dt und nicht Verlinkt. Den dt-Tag brauche ich aber immer als letzter (nach den allen dd-s), denn nach ihm kommt der Inhalt (wiederum dl verschachtelt). Folgenden TS-Code wende ich dafür an (Die schließende dd, dl usw. Tags kommen dann mit dem Setup-Code für den Inhalt):

# Hauptnavigation
	MAIN_NAV = COA
	MAIN_NAV {
		stdWrap.wrap = <dd id="pageContent"><dl id="mainNav">|
		stdWrap.required = 1
		10 = HMENU
		10 {
			1 = TMENU
			1 {
				noBlur = 1
				NO {
					allWrap = <dd class="navNO"><h2>|</h2></dd>
					stdWrap.htmlSpecialChars = 1
					stdWrap.htmlSpecialChars.preserveEntities = 1
					ATagTitle.field = title
				}
				CUR = 1
				CUR {
					doNotShowLink = 1
				}
			}
		}
		20 = HMENU
		20 {
			1 = TMENU
			1 {
				NO {
					doNotShowLink = 1
				}
				CUR = 1
				CUR {
					allWrap = <dt class="navCUR"><strong>|</strong></dt>
					doNotLinkIt = 1
				}
			}
		}
	}

Bei dem Fall hier wäre CUR natürlich ungeeignet. Ich denke, hier wäre eher ACTIFSUB passend.

sealover ·

Guten Morgen, Emil!

Da sind gute Ansätze dabei, danke. Allerdings habe ich für meinen Teil mein Problem direkt über ein externes PHP-Skript gelöst. Innerhalb der normalen Typo3-Menümöglichkeiten sah ich keine Chance, es so zu bauen, wie ich es brauche.

lg, Wolfgang