[TYPO3-german] Frage zu optionSplit im Menü

JoH asenau info at cybercraft.de
Thu Mar 15 02:22:41 CET 2007


>>> Du bist blind und ich auch...
>>> Spacer sind doch auch seiten...
>
> Ja ok, dat wohl... aber werden Spacer nicht doch ein wenig anders als
> "richtige" Seiten behandelt? Ich dachte das es eben nur
> Platzhalter/Abstandhalter sind und diese dann in einem Menü,
> insbesondere mit der Option doNotShowLink=1, einfach ignoriert
> werden? Also somit im NO-Objekt überhaupt nicht beachtet werden,
> sondern nur über SPC... Ist aber nur reine Vermutung/Interpredation
> meinerseits...
>
>>> Zitat deiner ersten Mail:
>>>> -- 1st Level Navi (Spacer)
>>>>     |-- Current
>>>>     |-- About us
>>> ...
>>> Damit bekommt dein Spacer (1st Level Navi) die Klasse ins <li>.
>
> root
>  |-- Home
>  |     |-- 1st Level Navi (Spacer)
>  |     |-- Current
> ...
>
> Nur damit keine Verwirrung auftritt, so schaut die richtige
> Hierarchie aus, muss wohl bei der ersten Mail irgendwie verrutscht
> sein?
>
>
>>> Blöd, oder?
>
> Naja... ja schon... aber was tun? Ich mein ich hab jetzt halt die
> Listenpunkte mit margin-left:-1px; nach links gerückt. Die Navi ist
> von einem weissen Rahmen umgeben (Dem Designer sei Dank :-), somit
> "verschwinden" die Trenner der ersten Listenpunkte quasi.
> Das ist natürlich bestenfalls Pfusch, ich wäre nach wie vor an einer
> sauberen Lösung interessiert, wenns denn da eine geben sollte...?
>
>
>>> :)
>
> Ja, ich freu mich auch! :-) Danke auf jeden Fall schon mal für Deine
> Unterstützung und Denkansätze!

Ich versuchs mal kurz zu erklären, bevor ich Dir die Lösung gebe.
optionSplit wird immer "absolut" ausgewertet und bezieht sich immer auf die
Gesamtposition im Menü und nicht etwa darauf, ob es z.B. das erste Element
vom Typ NO im Menü ist.

Beispiel:

NO {
    allWrap = 1 |*| 2 |*|
}
SPC {
    allWrap = |*| A || B || C |*|
}

ergibt bei Deiner Struktur

 |-- Home
 |     |-- 1st Level Navi (Spacer)    SPC A
 |     |-- Current    NO 2
 |     |-- About us    NO 2
 |     |-- People    NO 2

Das gewünschte Ergebnis lautet aber

 |-- Home
 |     |-- 1st Level Navi (Spacer)    SPC A
 |     |-- Current    NO 1
 |     |-- About us    NO 2
 |     |-- People    NO 2

Daher mußt Du Dein optionSplit so umbauen, daß folgendes Prinzip umgesetzt
ist:

NO {
    allWrap = 1 || 1 |*| 2 |*|
}
SPC {
    allWrap = |*| A || B || C |*|
}

Es kommt aber noch schlimmer ;-)

Der Spacer verhält sich nämlich genauso und wird eben nicht nur auf Basis
seines eigenen Vorkommens durchgezählt. Es gilt nicht:

A = 1. Spacer
B = 2. Spacer
C = 3. Spacer

Sondern (bdeingt durch die Rotation zwischen den beiden |*|):

A = Spacer an Position 1,4,7,10 ...
B = Spacer an Position 2,5,8,11 ...
C = Spacer an Position 3,6,9,12 ...

Wenn also die Anzahl der Elemente zwischen den Spacern nicht paßt, wirst Du
auch die gewünschte Reihenfolge A, B,C nicht realisieren können.

In Deinem Beispiel klappt das zufällig

 |-- Home
 |     |-- 1st Level Navi  => SPC A
 |     |-- Current => NO 1
 |     |-- About us => NO 2
 |     |-- People => NO 2
 |     |-- 2nd Level Navi => SPC B
 |     |-- Research => NO 2
 |     |-- Studies => NO 2
 |     |-- Services => NO 2
 |     |-- 3rd Level Navi => SPC C
 |     |-- Contact => NO 2
 |     |-- Sitemap => NO 2
 |     |-- Help => NO 2

Mit einem Menüpunkt mehr hat sich das schon erledigt:

 |-- Home
 |     |-- 1st Level Navi  => SPC A
 |     |-- Current => NO 1
 |     |-- Additional => NO 2
 |     |-- About us => NO 2
 |     |-- People => NO 2
 |     |-- 2nd Level Navi => SPC C
 |     |-- Research => NO 2
 |     |-- Studies => NO 2
 |     |-- Services => NO 2
 |     |-- 3rd Level Navi => SPC A
 |     |-- Contact => NO 2
 |     |-- Sitemap => NO 2
 |     |-- Help => NO 2

Deswegen macht man sowas nicht mit Spacern, sondern mit Containerseiten, in
denen die anderen als Unterseiten enthalten sind und baut dann drei Menüs
mit Hilfe von special = directory.
special.value wird dabei immer mit der jeweiligen ID einer der Seiten
belegt, die Du bisher als SPC eingebunden hast.

 |-- Home

### 1. Menü mit optionSplit###
 |     |-- 1st Level Navi
 |     |     |-- Current => NO 1
 |     |     |-- About us => NO2
 |     |     |-- People => NO2

### 2. Menü ohne optionSplit###
 |     |-- 2nd Level Navi
 |     |     |-- Research => NO2
 |     |     |-- Studies => NO2
 |     |     |-- Services => NO2

### 3. Menü ohne optionSplit###
 |     |-- 3rd Level Navi
 |     |     |-- Contact => NO2
 |     |     |-- Sitemap => NO2
 |     |     |-- Help => NO2

HTH

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your gob sometimes!)
Dieter Nuhr, German comedian
openBC/Xing: http://www.cybercraft.de
T3 cookbook: http://www.typo3experts.com




More information about the TYPO3-german mailing list