[TYPO3-german] split im HMENU

Hauke Haller post at haukehaller.de
Sun Dec 12 11:46:51 CET 2010


>> ich möchte im Menu für die einzelnen Menüpunkte als title die
>> Unterseitentitel als kommagetrennte Liste ausgeben. Dazu versuche
>> ich:
>>
> Das Problem ist, daß Dein zweites Menü innerhalb vom ATagTitle des ersten Menüs gerendert wird.
> Damit zieht optionSplit nicht so wie bei einem "echten" Untermenü bei dessen letztem Menüpunkt, sondern nur beim letzten Menüpunkt der ersten Ebene.
>
> Es wäre daher sinnvoller, die aneinandergereihten Titel in einem separaten Menü z.B. per LOAD_REGISTER in eine Art Zwischenablage zu packen und diese dann in einem zweiten Durchlauf dem ATagTitle zuzuweisen.
>
> Du könntest aber auch für die erste Ebene mit einem CONTENT Element anstatt eines HMENU arbeiten, weil das kein optionSplit kennt und sich deswegen nicht mit dem zweiten Menü überschneidet.
> Dann müsstest Du Dir zwar den Link per typolink manuell zusammenbauen, aber das wäre vermutlich einfacher als die genannte Register-Lösung.
>
> HTH
>
> Joey
>

Vielen Dank für den Tipp, Joey. So klappts dann auch:

temp.titleMenu = COA
temp.titleMenu {
   stdWrap.wrap = <ul> | </ul>
   10 = CONTENT
   10 {
     table = pages
     select {
       orderBy = sorting
       pidInList = {$startseite.uid}
     }
     renderObj = COA
     renderObj {
       stdWrap.wrap = <li> | </li>
       10 = TEXT
       10 {
         field = title
         typolink {
           parameter.field = uid
           title.cObject = COA
           title.cObject {
              
             10 = TEXT
             10.field = title
              
             20 = HMENU
             20 {
               stdWrap{
                 noTrimWrap = | - Unterseiten:||
                 required = 1
               }
               special = directory
               special.value.field = uid
               1 = TMENU
               1.NO {
                 doNotLinkIt = 1
                 stdWrap.cObject = TEXT
                 stdWrap.cObject {
                   field = title
                   noTrimWrap = |*| | |,| |*| | |,| || | | |
                 }
               }
             }
           }
         }
       }
     }
   }
}

Der noTrimWrap für die Leerzeichen ist so lustig, weil er wieder innerhalb des Menüs ist. Ein einfaches
noTrimWrap = | |,| wird auch als optionSplit interpretiert und packt nur das erste Element ein. Aber das letzte Element soll ja sowieso kein Komma bekommen und der optionSplit passt. So ein noTrimWrap = ||, | innerhalb des Splits geht natürlich auch nicht, da die doppelten Pipes als Trenner interpretiert werden.)

Hauke


More information about the TYPO3-german mailing list