[TYPO3-english] Two levels HMENU, expanding only the parent of the current page (if any)

Claudio Strizzolo claudio.strizzolo at ts.nogarb.ageinfn.it
Thu Aug 19 15:27:49 CEST 2010


Hi everybody,
I have a question about HMENUs.
Let's suppose you have the current subtree:

(...)
	people
		george
		john
		paul
		ringo

	fruits
		apple
		banana
		strawberry

	planets
		mars
		venus
(...)

I need to build a two-levels vertical menu working like follows:

1. when you are on the "people", "fruits" or "planets" page, the menu 
should show only that level. Let's imagine you are on "fruits":

	<ul class="sidemenu-l1">
	<li class="sidemenu-no"><a href="...">people</a></li>
	<li class="sidemenu-cur">fruits</li>
	<li class="sidemenu-no"><a href="...">planets</a></li>
	</ul>

2. when you are in one of the subpages, the corresponding submenu should 
be expanded while the others should remain collapsed. Let's imagine you 
are on page "banana":

	<ul class="sidemenu-l1">
	<li class="sidemenu-no"><a href="...">people</a></li>
	<li class="sidemenu-act"><a href="...">fruits</a>
		<ul class="sidemenu-l2">
		<li class="sidemenu-no"><a href="...">apple</a></li>
		<li class="sidemenu-cur">banana</li>
		<li class="sidemenu-no"><a href="...">strawberry</a></li>
	</ul>
	</li>
	<li class="sidemenu-no"><a href="...">planets</a></li>
	</ul>

Up to now I have written the TS attached below, but it expands all the 
submenus.
Any hints?

Thanks in advance

Claudio

=============================================================
# NO
sidemenu_no {
  ATagTitle.field = description // title
  doNotLinkIt = 1
  subst_elementUid = 1
  wrapItemAndSub = <li class="sidemenu-no">|</li>
}

# ACT
sidemenu_act=1
sidemenu_act {
  wrapItemAndSub = <li class="sidemenu-act"><span>|</span></li>
  ATagTitle.field = description // title
}

# CUR
sidemenu_cur=1
sidemenu_cur {
  allWrap=<span class="sidemenu-cur">|</span>
  wrapItemAndSub = <li class="sidemenu-cur">|</li>
  doNotLinkIt=1
  stdWrap.htmlSpecialChars=1
}

# SPC (menu spacer aka separator)
sidemenu_spc=1
sidemenu_spc {
  doNotShowLink = 0
  doNotLinkIt = 1
  stdWrap.htmlSpecialChars=1
  allWrap=</ul><div class="sidemenu-l1-spacer">|</div><ul class="sidemenu-
l1">
}

temp.sidemenucol = COA
temp.sidemenucol {
  10 = HMENU
  10.wrap=<div class="sidemenu">|</div>

  10.entryLevel = {$sideMenuLevel}

  10.1=TMENU
  10.1 {
     expAll=1
     noBlur=1
     wrap=<ul class="sidemenu-l1">|</ul>
     NO < sidemenu_no
     CUR < sidemenu_cur
     ACT < sidemenu_act
     ACTIFSUB < sidemenu_act
     SPC < sidemenu_spc
  }

  10.2 = TMENU
  10.2 {
    expAll=0
    noBlur=1
    wrap=<ul class="sidemenu-l2">|</ul>
    NO < sidemenu_no
    CUR < sidemenu_cur
    ACT < sidemenu_act
    SPC < sidemenu_spc
    SPC.allWrap=</ul><div class="sidemenu-l2-spacer">|</div><ul 
class="sidemenu-l2">
  }
}




More information about the TYPO3-english mailing list