Zum Inhalt springen

Ein einzelnes Dropdown eines Menus zweispaltig ausgeben

Erstellt am 5. März 2012 · 3 Antworten · letzte Antwort am 6. März 2012

Tags: Frage

thofei ·

Hallo,

ich habe ein recht normales Menu, in dem die zweite Ebene per Dropdown eingebunden wird. Ich stehe jetzt aber vor dem Problem, dass bei einer Ebene sehr sehr viele Unterseiten vorhanden sind und ich möchte daher für diesen einen Menüpunkt das Dropdown zweispaltig (oder vielleicht sogar dreispaltig) haben.

Ich habe gelesen, dass man mittels OVERRIDE einzelne Einträge zu einer bestimmten ID anders ausgeben kann, meine bisherigen Versuche in die Richtung sehen wie folgt aus, ich möchte erstmal für diese einen Punkt im <li> ein paar XXXe ausgeben, um das mit dem OVERRIDE zu testen:

subparts.HAUPTMENUCSS = HMENU
subparts.HAUPTMENUCSS.entryLevel = 1  
subparts.HAUPTMENUCSS {  
  ### Erste Ebene ###
    1 = TMENU
    1 {
      wrap = <ul class="menu"><li><img src="/fileadmin/web/template/images/navbar-left.jpg" border="0"></li><li><a href="index.html" class="active">Home</a></li>|<li><img src="fileadmin/arrowecs/template/images/navbar-tile.jpg" width="251" height="38" border="0"></li><li><img src="fileadmin/web/template/images/navbar-right.gif" border="0"></li></ul>

      expAll = 1
      NO.wrapItemAndSub = <li onmouseover="showie6menu(this)" onmouseout="hideie6menu(this)">|</li>
      
      ACT < .NO
      ACT = 1
      ACT.ATagParams = class="active"
    }

    ### Zweite Ebene ###
    2 = TMENU
    2 {
      wrap = <ul onmouseover="showie6menu(this)" onmouseout="hideie6menu(this)">|</ul>
      NO.allWrap = <li>|</li>
      
      NO.allWrap.override = <li> XXX | XXX</li>
      NO.allWrap.override.if {
        equals.field = uid
        value = 1388
      }
    }
}

Leider funktioniert es so nicht. Die ID 1388 ist die ID des Punktes "Hersteller" in meinen Seiten, fahre ich hier mit der Maus drüber, haben die Unterpunkte im Dropdown leider keine XXXe.

Und hätte eine freundlichen Seele auch gleich eine Lösung oder Idee für die Ausgabe des Menüs in zwei oder drei Spalten? Ich habe versucht, nach so etwas zu googlen, bin aber nicht wirklich fündig geworden.

Vielen Dank
Thomas

fuss ·

Olla!

Vorab: die 2. Ebene würde ich auch mit wrapItemAndSub erstellen anstelle allWrap. So sind auch in dieser Ebene die ul li Tags korrekt verschachtelt.

Der Einfachheit halber würde ich mir in alle Elemente (der 1. Ebene) eine dynamische ID in das li Tag mit aufnehmen, und das if Konstrukt weglassen.

NO.wrapItemAndSub = <li id="uid{field:uid}" onmouseover="showie6menu(this)" onmouseout="hideie6menu(this)">|</li>

Eventuell müsste dort noch ein insertData = 1 mit rein, damit field:uid auch korrekt mit der ID der Seite befüllt wird.

Da nun alle li eine ID haben, könnte dann Dein CSS wie folgt aussehen:

/* ul der 2. Ebene für Seite 1388 auf 400px Breite setzen */
ul.menu li#uid1388 ul {
 width: 400px;
}
/* ul li der 2. Ebene auf knapp die Hälfte der Breite setzen und floaten */
ul.menu li#uid1388 ul li {
 width: 190px;
 margin-right: 10px;
 display: inline;
 float: left;
}

Somit sollte das ul der 2. Ebene der Seite 1388 nun 2-spaltigen Inhalt haben.

gruss, fuss

thofei ·

***
selbst gelöst, insertData muss per NO.wrapItemAndSub.insertData = 1 eingebunden werden

Vielen Dank Fuss für den Hinweis in die richtige Richtung!
****

Hallo Fuss,

ich habe das entsprechend abgeändert:

NO.wrapItemAndSub = <li id="uid{field:uid}" onmouseover="showie6menu(this)" onmouseout="hideie6menu(this)">|</li>

insertData = 1

leider ergibt mir das im resultierenden HTML-Quelltext nur die folgende Ausgabe:

<li id="uid{field:uid}" onmouseover="showie6menu(this)" onmouseout="hideie6menu(this)"><a href="hersteller.html" onfocus="blurLink(this);">Hersteller</a>

sprich hier findet leider keine Ersetzung mit der Seiten-ID statt. Hast du eine Idee, warum das nicht funktioniert?

Vielen Dank