Zum Inhalt springen

Id´s unterschiedlichen Menüs zuweisen

Erstellt am 11. November 2006 · 10 Antworten · letzte Antwort am 11. Januar 2007

Tags: Frage

The-f-l-o-w ·

Hallo, und zwar möchte ich 2 Menüs auf meiner Webseite haben, die Marker lauten für Menü1

###MENU###

und für das 2te Menü:

###MENU2###

Mein T3 Script lautet wie folgt:

seite.10.marks.MENU = HMENU
seite.10.marks.MENU.special = directory
seite.10.marks.MENU.special.value = 7,8,9,10
seite.10.marks.MENU.entryLevel = 1
seite.10.marks.MENU.1 = TMENU
seite.10.marks.MENU.1.NO {
allWrap =|
ATagParams=class="no"
}
seite.10.marks.MENU.1.ACT = 1
seite.10.marks.MENU.1.ACT {
allWrap = |
ATagParams=class="act"
}

#Untermenue
seite.10.marks.MENU2 = HMENU
seite.10.marks.MENU2.special = directory
seite.10.marks.MENU2.special.value = 46
seite.10.marks.MENU2.entryLevel = 2
seite.10.marks.MENU2.1 = TMENU
seite.10.marks.MENU2.1.NO {
allWrap =|
ATagParams=class="subnav-no"
}
seite.10.marks.MENU2.1.ACT = 1
seite.10.marks.MENU2.1.ACT {
allWrap = |
ATagParams=class="subnav-act"
}

Ich möchte das die Seiten 7,8,9,10 in Menü1 dargestellt werden und die ID4,6 in Menü2. WEnn ich das Script ablaufen lasse,zeigt er mir gar kein Menü an. Wo ist denn mein Fehler? Hab schon einiges ausprobiert, aber ich bekomme es nicht hin.

Wenn mir jemand helfen könnte, wäre ich sehr dankbar.

LG FLORIAN

stevee ·

hallo toyde

ich hab nun schon x mal mein buch (4.0, robert meyer) konsultiert, das pdf durchforstet, die referenz gelesen, aber um die optionen special, special.value und entryLevel steht einfach nirgens genaueres!

ich habe eine ähnliche aufgabenstellung wie the flow.
eine einfachere variante ist ja auch einfach lösbar, indem man nur den entryLevel setzt und die special-dinge weglässt - wie auch in ein paar wenigen beiträgen beschrieben bzw. als lösung angegeben wurde, aber bei genau dieser aufgabenstellung mit mehreren menüs, wo man special und special.value angeben MUSS, wusste bisher niemand rat...

Unbekannter Benutzer ·

ANMERKUNG: Setzen Sie nicht die Eigenschaft ».entryLevel für ein HMENU, wenn Sie diese Option benutzen! Beachten Sie auch, dass hier Seiten für die oberste Menüebene gewählt werden. Untermenüs mit menuObjects 2+ werden wie üblich erzeugt.

Aus der TSref hier auf der Seite.

Was sagt uns das?

Lass mal den Parameter entryLevel weg und mach es nur mit special. Du hast außerdem bei menu2 im special.value einen schreibfehler, der aber zumindest das erste Menü nicht stören sollte.

Viele Grüße

Christian

stevee ·
Kitsunet schrieb

ANMERKUNG: Setzen Sie nicht die Eigenschaft ».entryLevel für ein HMENU, wenn Sie diese Option benutzen! Beachten Sie auch, dass hier Seiten für die oberste Menüebene gewählt werden. Untermenüs mit menuObjects 2+ werden wie üblich erzeugt.

Aus der TSref hier auf der Seite.

Was sagt uns das?

Lass mal den Parameter entryLevel weg und mach es nur mit special. Du hast außerdem bei menu2 im special.value einen schreibfehler, der aber zumindest das erste Menü nicht stören sollte.

Viele Grüße

Christian

hmmm, also ich kann keinen fehler sehen bei menu2 im special.value...

und das in der tsref hab ich auch schon mehrmals gelesen.
komisch ist nur, dass der robert meyer in seinem praxisbuch typo3 4.0 gerade das gegenteil schreibt!
das könnte ihr übrigens 1:1 nachlesen in der doku auf eurer eigenen website!:
http://www.typo3.net/uploads/media/dokumentation.pdf --> seite 117 (entryLevel für weitere menüebenen setzen)!

und jetzt soll mir doch einer erklären, was jetzt wirklich stimmt.
was ich sicher weiss, ist, dass das ganze funktioniert, wenn mann die special-befehle ganz weglässt und nur mit entryLevel arbeitet.
das heisst dann aber, dass ein menü über die gasamte seitenstruktur hinweg aufgebaut wird.
wenn ich also z.b. einen solchen:

new typo3 site
|-ebene 1.1 (entrylevel 0)
| |-ebene 2.1 (entrylevel 1)
| |-ebene 2.2
|-ebene 1.2
| |-ebene 2.3
| |-ebene 2.4

seitenbaum habe, dann sieht ein menü mit entrylevel 1 folgendermassen aus:
ebene 2.1, ebene 2.2, ebene 2.3, ebene 2.4

wenn ich aber je ein menü möchte für alles, was unter ebene 1.1 und für alles was unter ebene 1.2 steht, dann muss ich mit special die ID's der seiten 1.1 und 1.2 angeben. und sobald man diese special-befehle braucht, funktioniert das einfach nicht mehr richtig zusammen mit entrylevel.
nach meinem verständnis müsste es dann ja auch ohne entrylevel gehen, dazu ein beispiel, wie ich mir das vorstelle (mein beispiel ist noch ein wenig anders, es wäre nämlich dasselbe menü, einfach aufgeteilt, um es bzw. die nächste ebene an einem anderen marker darzustellen):

//// Menü 1. Ebene

NAV_MAIN = HMENU
NAV_MAIN {
	special = directory
	special.value = 2
	
	1 = GMENU
	1.NO = 1
	1.NO {
	...
}

//// Menü 2. Ebene

NAV_SUB1 = HMENU
NAV_SUB1 {
	special = directory
	special.value = 2
//	entryLevel = 1
	
	2 = GMENU
	2.NO = 1
	2.NO {
...
}

tut es aber leider nicht!

wenn man den code von NAV_SUB1.2... in den von MAIN_NAV reinpackt, funktioniert es wie gewünscht. natürlich werden dann die untermenüs einfach den menüpunkten der ersten ebene angehängt, ist ja logisch.
was ich mir vorstellen könnte, ist einzig, dass der zustand der ebene 2 (NAV_SUB1.2) nicht in zusammenhang gebracht wird mit der ersten ebene in NAV_MAIN.1, aber von mir aus gesehen müsste er das auch nicht, denn man gibt ja die ID an und welche ebene, und nach meiner logik müsste somit einfach die 2te ebene ausgespuckt werden...?!?!????

Unbekannter Benutzer ·

Im Text stand du willst ein Menü über die ID4,6 daher dachte ich das special.value = 46 wohl eher special.value = 4,6 heißen müsste.

Zum special + entryLevel

Für jedes neue HMENU musst du mit 1 bei den Menüebenen anfangen. Du könntest natürlich einfach in der ersten Ebene die Links gar nicht anzeigen lassen, dann hast du das gewünschte Ergebnis.

Ich muss aber zugeben, dass du mich mit dem Beispiel stutzig gemacht hast und ich mir mal hier und da Code angesehen habe. Es ist definitiv so, dass die Kombination aus special und entryLevel funktionieren kann, denn ich habe hier eine Seite wo sowas im Einsatz ist. Ich vermute aber es wird nicht empfohlen das zu machen, weil es eben auch nicht klappen kann. Da habe ich jetzt keine Erfahrungswerte, aber vielleicht liegt es an der ID Liste und das geht nur mit genau einer ID bei special.value

Ich wusste nicht, dass es in der Doku hier auf der Seite anders steht, als in der TSref. Ich benutze nur die TSref hier und auf TYPO3.org.
Und was heißt hier: "Eure Doku"?
Meine ist es nicht, und falls es dir nicht aufgefallen ist, ich bin kein Mod in diesem Forum sondern ein User wie du, der einfach nur versucht Tipps zu geben.

Grüße

Christian

stevee ·
Kitsunet schrieb

Und was heißt hier: "Eure Doku"?
Meine ist es nicht, und falls es dir nicht aufgefallen ist, ich bin kein Mod in diesem Forum sondern ein User wie du, der einfach nur versucht Tipps zu geben.

Grüße

Christian

ups, ja, das tut mir leid, habs nicht so gemeint. mir ist wirklich nicht aufgefallen, dass du kitsunet und nicht toyde bist. 😉
aber ich will auch toyde nichts böses, dass ihr mich richtig versteht.
es wurde gestern halt wieder mal seeeeeeehhhhhhhr spät, und wenn man seit xxx stunden etwas am suchen ist und einfach kein lösung findet, dann sch... es einem manchmal gewaltig an und nervt sich halt ein bisschen, wenn es dann einfach heisst, man solle doch mal die ref usw. lesen - was ich ja alles schon gemacht habe. aber vergessen wir das wieder, denn emotionale auswüchse in einem forum sind immer schlecht und nützen niemandem - trotzdem bin ich gestern mal selbst da reingeraten... 😉 🙂
aber nichts für ungut.

trotzdem würde mich noch sehr interessieren, was toyde dazu meint, vielleicht hat er ja eine lösung.

danke euch allen für den support!
stevee

stevee ·
Kitsunet schrieb

Für jedes neue HMENU musst du mit 1 bei den Menüebenen anfangen. Du könntest natürlich einfach in der ersten Ebene die Links gar nicht anzeigen lassen, dann hast du das gewünschte Ergebnis.

die idee ist gut, habs mal so probiert zu lösen...:

1 = GMENU
1.NO = 1
1.NO.XY = 0, 0

aber leider macht er da eine linie mit einem pixel höhe oder so was ähnliches unter die anderen menüpunkte drunter, und die kann man sogar anklicken - d.h. es ist trotzdem die ganze erste ebene vorhanden.

da gibt es bestimmt "richtige" lösch-lösungen.
hast du eine?

Kitsunet schrieb

Im Text stand du willst ein Menü über die ID4,6 daher dachte ich das special.value = 46 wohl eher special.value = 4,6 heißen müsste.

übrigens hast du vermutlich auch übersehen, dass ich nicht "the flow" bin... 😉

Unbekannter Benutzer ·

Hi,

ja stimmt ich habe die tatsächlich verwechselt... Und ich nehme dir nichts übel, ich kenne das mit TYPO, wenn es länger nicht klappt ist der Frust groß.

mach mal aus der ersten Ebene ein TMENU und schreib

1.NO.doNotShowLink = 1

das geht bei einem GMENU nicht.
Allerdings müsste es, wie ich schon geschrieben habe auch mit special und entryLevel funktionieren.

Grüße

Christian

stevee ·
Kitsunet schrieb

Allerdings müsste es, wie ich schon geschrieben habe auch mit special und entryLevel funktionieren

hmm, du meinst so, wie ich schon das beispiel oben (Verfasst am: 11.01.2007 [12:08]) gepostet hab, einfach die zeile mit entrylevel nicht auskommentiert und die zweite ebene mit 1 und nicht mit zwei gemacht...
geht eben nicht, mit entrylevel 0 oder 1 erscheint zwar ein menü, aber das der ersten ebene, und mit entrylevel 2 erscheint gar nichts mehr.

und hey, dein anderer tipp funktioniert wirklich!

das sieht jetzt folgendermassen aus:

//// Menü 1. Ebene

NAV_MAIN = HMENU
NAV_MAIN {
	special = directory
	special.value = 2
	
	1 = GMENU
	1.NO = 1
	1.NO {
	...				
	}
}

//// Menü 2. Ebene

NAV_SUB1 = HMENU
NAV_SUB1 {
	special = directory
	special.value = 2
	
	1 = TMENU
	1.NO = 1
	1.NO.doNotShowLink = 1
	
	2 = GMENU
	2.NO = 1
	2.NO {
	...
	}
}

coool! danke dir! werde bei diversen posts einen link auf diesen post setzen. ok? in dem fall kann man den post als abgeschlossen markieren?
wer kann/macht das überhaupt?

dankende grüsse
stevee

Unbekannter Benutzer ·

Naja, Hauptsache es funktioniert jetzt. Kannst natürlich auf diesen Post verlinken, ich hab nichts zu verbergen. #giggle#

Der Verfasser kann den Thread als gelöst kennzeichnen und da ich ja inzwischen gelernt habe, dass du nicht the f-l-o-w bist, kannst es wohl nur der.

Grüße

Christian