Zum Inhalt springen

JSMenu: Nächsten Level nur zeigen wenn vorhanden

Erstellt am 5. Oktober 2008 · 4 Antworten · letzte Antwort am 24. August 2012

Tags: Frage

dfluess ·

Hallo,

ich möchte vermeiden, dass ein JSMENU eine leere DropDown-Box zeigt, wenn zu viele "levels=" im TS angegeben sind. Ist das mit einfachen mitteln möglich?

Danke

dfluess ·

Hallo,

ist zwar schon länger her, aber das Problem ist wieder Aktuell.

Ich lasse das JSMENU auf jeder Seite anzeigen wobei der Einstigspunkt (special = directory) jeweils die ID der aufgerufenen Seite ist. Somit kann ich Schritt für Schritt in die nächste vorhandene Ebene klicken. Nur wird eben in der letzten Ebene trotzdem eine leere Dropbox gezeigt obwohl keine Unterseiten mehr vorhanden sind.

Hat jemand eine Idee?

Danke 🙂

Gruß, Detlef

dfluess ·

Hallo Niels
ich habe es inzwischen (vielleicht etwas umständlich) gelöst. Mit dieser Variante kann man dann auch per Conditions die Mehrsprachigkeit sicherstellen. Denn JSMENU unterstützt kein stdWrap oder sowas wie firstLabel.lang.de =

Über treeLevel wird dann im Letzten Schritt das DrobDown gelöscht.
Oder gibt es eine elegantere Möglichkeit?

lib.kalkulator.dropdown = COA
lib.kalkulator.dropdown {
  wrap = <div style="padding:20px;">|</div>  
 
  25 = HMENU
  25 {
    wrap = <p>|</p>
    special = rootline
    special.range = 6|-1
    1 = TMENU
    1 {
      NO.stdWrap.noTrimWrap = | | |      
      NO.linkWrap = | ? |*| | ? |*| <strong>|</strong>
    }
  }

  30 = HMENU
  30.special = directory
  30.special.value.field = uid
  
  30.1 = JSMENU
  30.1 {
#    levels = 5
    1 {
      wrap = <p>|</p>
      showActive = 1
      showFirst = 0
    }    
    2 < .1
    3 < .1
    4 < .1
    5 < .1
  }
}
[treeLevel = 5]
lib.kalkulator.dropdown.30.1.levels = 4
lib.kalkulator.dropdown.30.1.1.firstLabel = Typ:
lib.kalkulator.dropdown.30.1.2.firstLabel = Ausführung:
lib.kalkulator.dropdown.30.1.3.firstLabel = Verwendung als:
lib.kalkulator.dropdown.30.1.4.firstLabel = Model:
[global]

[treeLevel = 6]
lib.kalkulator.dropdown.30.1.levels = 3
lib.kalkulator.dropdown.30.1.1.firstLabel = Ausführung:
lib.kalkulator.dropdown.30.1.2.firstLabel = Verwendung als:
lib.kalkulator.dropdown.30.1.3.firstLabel = Model:
[global]

[treeLevel = 7]
lib.kalkulator.dropdown.30.1.levels = 2
lib.kalkulator.dropdown.30.1.1.firstLabel = Verwendung als:
lib.kalkulator.dropdown.30.1.2.firstLabel = Model:
[global]

[treeLevel = 8]
lib.kalkulator.dropdown.30.1.levels = 1
lib.kalkulator.dropdown.30.1.1.firstLabel = Model:
[global]

[treeLevel = 9]
lib.kalkulator.dropdown.30 >
[global]
danton ·

Hi

Ehrlich gesagt steh ich da auch auf dem Schlauch.

Das dumme ist das man kann nicht per stdWrap.ifEmpty übeprüfen kann ob es leer ist da keine stWrap-Eigenschaft vorhanden.
Außerdem steht in der Ref.
- firstLabel (string)
- Erste Beschriftung an der Spitze des Menüs (Standard ist ein leerer String).
Daraus schließe ich das immer ein wrapper generiert wird.

Die einzige andere Variante die möglich wäre denke ich ist es per jQuery zu machen.
Aber ob das dann so viel besser ist wie Deine Lösung ist halt so ne Sache

Gruß Niels