Hallo,

On 08/11/2018 03:44 AM, Bernhard Kraft wrote:

 > ich möchte gerne mein Dropdown-Menü erweitern. Wenn man beispielsweise
> jetzt auf die Trauringe (https://www.goldene-zeiten.info/shop/trauringe/)
 > geht, dann wird derzeit immer nur alles untereinander angezeigt (die
 > Hersteller).
 > [...]
 > Wie könnte man dies realisieren?

Hier noch die von mir vorgeschlagene Lösung. Für die anderen zum mitlesen:

======

Also ich hab das jetzt nicht getestet. Möglich das hier oder da ein Quirks drin is. Aber in etwa so würde ich das lösen. TypoScript alleine scheint auszureichen. Durch das "max = 1" sollte die Abfrage nicht allzuviel DB Resourcen verbrauchen.


## ------------------------------------------------------
## Snippet for determining if the currently rendered
## menu page contains spacers.
lib.hasSpacers = CONTENT
lib.hasSpacers {
  table = pages
  select {

    ## Check if there is at least 1 spacer element
    max = 1

    ## Select SPACER doktype
    where = (doktype = 199)

    pidInList.data = page:uid
  }

  renderObj = TEXT
  renderObj.field = uid
}


## Define the menu
lib.menu = HMENU
lib.menu.wrap = <nav class="main-menu"> | </nav>

lib.menu.1 = TMENU
lib.menu.1 {
  expAll = 1
  NO.allWrap = <div class="main-menu-item"> | </div>
  ### Override class with additional "is-mega" element if there are
  ### spacers
  NO.allWrap.override = <div class="main-menu-item is-mega"> | </div>
  NO.allWrap.override.if.isTrue.cObject < lib.hasSpacers
}

lib.menu.2 = TMENU
lib.menu.2 {
  expAll = 1
  wrap = <nav class="sub-menu"> | </nav>
  NO.allWrap = <div class="sub-menu-item"> | </div>
}

lib.menu.3 = TMENU
lib.menu.3 {
  ## Don't expand 4-th level pages
  expAll = 0

  wrap = <nav class="mega-menu"> | </nav>
  NO.allWrap = <div class="mega-menu-item"> | </div>
}

## ------------------------------------------------------


Schöne Grüße,
Bernhard
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Reply via email to