[Typo3-german] Letzter Menüpunkt im Tree
Thomas Schulze
thomas.schulze at outraxx.de
Mon Oct 31 11:43:06 CET 2005
Hi JoH...
ich hab´s gewusst ;-)
Also optionSplit wie Matthias beschrieben hat, funktioniert soweit ganz
gut... als nächstes werd ich Dein Script mal testen... Lasse Dich natürlich
wissen, ob´s i.O. ist.
Wann kam Dein Buch auf den Markt?? *grins*
--
Gruß
Thomas
http://www.outraxX.de | http://www.hosting4typo3.de
"JoH" <info at cybercraft.de> schrieb im Newsbeitrag
news:mailman.1.1130753687.27577.typo3-german at lists.netfielders.de...
>> Möchte gern feststellen (in einem HMENU/TMENU) ob ein Menüpunkt
>> der letzte im Tree ist. Mit IFSUB, das haben wir hier gelernt ;-),
>> kann ich je nachdem ob eine Seite eine Seite IN SICH hat
>> reagieren... Aber wie stelle ich fest, ob sich noch eine Seite unter
>> der aktuellen befindet.
>>
>> Wozu?
>>
>> Im groben und ganzen soll eine Sitemap ähnlich aussehen, wie die
>> Treeview im Backend. Dort gibt es z.B. für Seiten die NICHT die
>> letzte im Tree ist eine Grafik namens "join.gif" (gepunktete Linie).
>> Seiten, die das Ende im Tree darstellen haben aber die Grafik
>> "joinbottom.gif" vor der Seite.
>>
>> Sowas, nur andere Grafiken, will ich für die Sitemap abbilden.
>>
>> Puh... ich hoffe das man das dort oben versteht :-( - JoH... Dein
>> Einsatz....
>
> einen Menüstatus im eigentlichen Sinne kenne ich dafür auch nicht. Du
> kannst aber das wrap und alle anderen Eigenschaften der Menüpunkte
> mit OptionSplit variieren. Das ist im TYPO3 Buch ziemlich gut
> beschrieben. Im groben sieht das zum Beispiel so aus:
>
> MeinMenu.1.NO.wrap = <li class="erster_Menuepunkt">|</li> |*| <li
> class="mittlere_Menuepunkte">|</li> |*| <li
> class="letzter_Menuepunkt">|</li>
>
> Beschreibung siehe:
>
http://typo3.org/documentation/document-library/doc_core_tsref/optionSplit/
Wenn ich schon so direkt angesprochen werde und es dazu noch in den Bereich
optionSplit geht, muß ich natürlich auch meinen Senf dazugeben:
1. optionSplit funktioniert für ein solches Konzept _nicht_! Grund: Eine
Seite kann sehr wohl die letzte innerhalb ihrer Ebene sein (optionSplit kann
das auch berücksichtigen), aber dennoch muß sie nicht die letzte im Menu
sein.
2. Es gibt keinen direkten Status, um das zu überprüfen, aber einen
Workaround.
Mach ein "blindes" Menu das nur ein Register mit der uid füttert. Nutze
diese uid in einer if Abfrage für das sichtbare Menu.
Wichtig ist hierbei, daß Dinge wie expAll, entryLevel, Anzahl der Ebenen
etc. für beide Menus exakt identisch sein müssen!
temp.checkLastItem = HMENU
temp.checkLastItem {
1 = TMENU
1 {
NO {
stdWrap.cObject = LOAD_REGISTER
stdWrap.cObject {
lastItemUid.cObject = TEXT
lastItemUid.cObject.field = uid
}
}
}
2 < .1
3 < .1
4 < .1
5 < .1
}
Da das Register einfach nur überschrieben wird, muß logischerweise die uid
des letzten Items nach einem Durchlauf in diesem Register stehen.
temp.menuWithLastItem = HMENU
temp.menuWithLastItem {
1 = TMENU
1 {
wrap = <ul>|</ul>
NO {
wrapItemAndSub = |</li>
allWrap.cObject = COA
allWrap.cObject {
### Wenn's nicht übereinstimmt
### (zu prüfen mit equals und "negate=1")
### kann es kein letztes Item sein
10 = TEXT
10.value = <li class="standard">|
10.if {
value.data = register : lastItemUid
equals.field = uid
negate = 1
}
### Wenn's übereinstimmt
### (zu prüfen mit equals)
### muß es ein letztes Item sein
20 = TEXT
20.value = <li class="lastItem">|
20.if {
value.data = register : lastItemUid
equals.field = uid
}
}
}
}
2 < .1
3 < .1
4 < .1
5 < .1
}
temp.myMenu = COA
temp.myMenu {
### Erst das Register füllen
10 < temp.checkLastItem
### Dann das Menu erzeugen
20 < temp.menuWithLastItem
}
marks.MENU < temp.myMenu
So (oder so ähnlich) könnte das aussehen.
Ist nur ein prinzipieller Ansatz und ungetestet.
Laßt mich wissen, ob's geht ...
Joey
--
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your knob sometimes!)
Dieter Nuhr, German comedian
openBC: http://www.openbc.com/go/invuid/Jo_Hasenau
More information about the TYPO3-german
mailing list