[TYPO3] wrap menu-item based on condition

Vandemaele David david.vandemaele at telenet.be
Thu May 18 18:05:57 CEST 2006


JoH schreef:
>>> certain menu-items need a different css class.
>>> What should come in place of ####ID####? I've tried several words, but 
>>> none of them is working.
>>>
>>> Perhaps my tscript contains some other error?
>>>
>>>
>>> lib.menu_1{
>>>  1 = TMENU
>>>         1.expAll = 1
>>>         [####ID####=44,39,40]
>>>         1.NO.wrapItemAndSub = <li class="BL">|</li>
>>>         [ELSE]
>>>          1.NO.wrapItemAndSub = <li>|</li>
>>>         [END]
>>>
>>>         2 = TMENU
>>>  2.wrap = <ul>|</ul>
>>>  2.NO.wrapItemAndSub = <li>|</li>
>>>         2.expAll = 1
>>>  3 = TMENU
>>>  3.wrap = <ul>|</ul>
>>>  3.NO.wrapItemAndSub = <li>|</li> 3.expAll = 1
>>> }
>> Hi David. You can't use Conditions inside {} brackets.
>> And you won't be able to use conditions to set the classes either, as 
>> conditions doesn't work on menuitems.
>>
>> Usually you can use the "if" property, along with it's property "inList", 
>> but that won't work in you case either, because you can't use the "if" 
>> property on "wrapItemAndSub", as "wrapItemAndSub" doesn't have stdWrap.
>> The easiest solution would be to write a small IProcFunc, that adds a 
>> class if the page is one of those 3 IDs.
> 
> Since the relevant part of wrapItemAndSub is the part after the | you could 
> move the first part of wrapItemAndSub into allWrap and use stdWrap there.
> 
> 1 = TMENU
> 1 {
>     expAll = 1
>     NO {
>         allWrap.cObject = TEXT
>         allWrap.cObject {
>             value = <li>|
>             override  = <li class="BL">|
>             override.if.value = 44,39,40
>             override.if.isInList.field = uid
>         }
>         wrapItemAndSub = |</li>
>     }
> }
> 
> Joey
> 
> 
Thx, that's what I needed

David



More information about the TYPO3-english mailing list