[TYPO3-english] Split submenu TS challenge
Philipp Gampe
typo3.lists at philippgampe.info
Tue Apr 26 22:53:00 CEST 2011
Hi Paul,
I have no time to create and test a full version, but I give you some hinds
below:
Paul Vetch wrote:
> Trying to figure out if I can do something with TS alone. What I want is
> a grouped megadropdown menu, two levels: level 1 is a simple, standard top
> level menu, but for second level pages, I want pages split into two
> groups: first, pages with images would be output with image, page title
> and abstract; and secondly, pages without an image would just be listed
> with
> their titles. Consider the following page tree, where an * means a page
> has an image:
>
> Page 1
> Page 2
> - Page 2.1
> - Page 2.2 *
> - Page 2.3
> - Page 2.4 *
> Page 3
>
> I'd want this output as:
>
> <ul>
> <li><a>Page 1</a></li>
> <li><a>Page 2</a>
> <ul>
> <li>Page 2.2* [+ image and abstract]</li>
> <li>Page 2.4* [+ image and abstract]</li>
> </ul>
> <ul>
> <li>Page 2.1</li>
> <li>Page 2.3</li>
> </ul>
> </li>
> <li><a>Page 3</a></li>
> </ul>
>
> Can I do this with TS?
First of all the general TS of menus looks like this:
menu = HMENU
menu.special = directory
menu.special.value = ###page id of root page###
menu.wrap = <nav id="main">|</nav>
menu.1 = TMENU
menu.1 {
wrap = <ul>|</ul>
expAll = 1
NO = 1
NO.allWrap = <li>|</li>
IFSUB < .NO
IFSUB.allWrap = <li class="hassub">|</li>
ACT < .NO
ACT.allWrap = <li class="active">|</li>
CUR < .NO
CUR.allWrap = <li class="active you-are-here">|</li>
}
menu.2 < menu.1
menu.3 < menu.1
menu.4 < menu.1
menu.4.wrap = <ul class"level-4">|</ul>
This gives you a basic, nested menu with ul, li lists.
What you need to do now is to put some conditions to to "wrap" lines. All
lines with the word "wrap" in it have "stdWrap" properties. That means you
can use everything you find here:
http://typo3.org/documentation/document-library/core-
documentation/doc_core_tsref/4.4.0/view/1/5/#id2618234
Have a special look at required and override and if. You might find ifEmpty
being a useful property ;)
Also you can use wrap.cObject to have a fully recursive option for very
complex scenarios. But I think you will only need ifEmpty to do what you
want ;)
Best regards
--
Philipp Gampe
More information about the TYPO3-english
mailing list