Attention
TYPO3 v6 has reached its end-of-life April 18th, 2017 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.
There is no further ELTS support. It is strongly recommended updating your project.
optionSplit¶
optionSplit is a very tricky function. It's primarily used in the menu objects where you define properties of a whole bunch of items at once. Here the value of properties would be parsed through this function and depending on your setup you could e.g. let the last menu- item appear with another color than the others.
Syntax¶
The syntax is like this:
|*| splits the value in parts first, middle and last.
|| splits each of the parts first, middle and last in subparts.
The four rules¶
The following four rules are used by optionSplit:
The priority is last, first, middle.
If the middle-value is empty (""), the last part of the first- value is repeated.
If the first - and middle value are empty, the first part of the last-value is repeated before the last value.
The middle value is repeated.
Example:
first1 || first2 |*| middle1 || middle2 || middle3 |*| last1 || last2
Examples:¶
This is very complex and you might think that this has gone too far. But it's actually useful.
Now consider a menu with five items:
Introduction
Who are we?
Business
Contact
Links
... and a configuration like this:
temp.topmenu.1.NO {
backColor = red
....
}
If you look in this reference (see later) at the linkWrap property of the GMENU object, you'll discover that all properties of .NO are parsed through optionSplit. This means that before the individual menu items are generated, the properties are split by this function. Now lets look at some examples:
Subparts ||¶
Example:¶
All items take on the same value. Only the first -part is defined and thus it's repeated to all elements
TS: backColor = red
Introduction (red)
Who are we? (red)
Business (red)
Contact (red)
Links (red)
Example:¶
Here the first- part is split into subparts. The third subpart is repeated because the menu has five items.
TS: backColor = red || yellow || green
Introduction (red)first, subpart 1
Who are we? (yellow) first, subpart 2
Business (green) first, subpart 3
Contact (green) first, subpart 3 (repeated)
Links (green) first, subpart 3 (repeated)
Parts |*|¶
Example:¶
Now a middle-value is also defined ("white"). This means that after the first two menu-items the middle-value is used.
TS: backColor = red || yellow |*| white
Introduction (red) first, subpart 1
Who are we? (yellow) first, subpart 2
Business (white) middle
Contact (white) middle
Links (white) middle
Example:¶
Now a last-value is also defined ("blue || olive"). This means that after the first two menu-items the middle-value is used.
TS: backColor = red || yellow |*| white |*| blue || olive
Introduction (red) first, subpart 1
Who are we? (yellow) first, subpart 2
Business (white) middle
Contact (blue) last, subpart 1
Links (olive) last, subpart 2
... and if we expand the menu a bit (middle-value is repeated!)
Introduction (red) first, subpart 1
Who are we? (yellow) first, subpart 2
Business (white) middle
.... (white) middle
.... (white) middle
.... (white) middle
.... (white) middle
Contact (blue) last, subpart 1
Links (olive) last, subpart 2
... and if we contract the menu to only four items (the middle -value is discarded as it's priority is the least)
Introduction (red) first, subpart 1
Who are we? (yellow) first, subpart 2
Contact (blue) last, subpart 1
Links (olive) last, subpart 2
... and if we contract the menu to only 3 items (the last subpart of the first-value is discarded as it's priority is less than the last-value)
Introduction (red) first, subpart 1
Contact (blue) last, subpart 1
Links (olive) last, subpart 2
"1: The priority is last, first, middle"¶
Now the last two examples showed that the last-value has the highest priority, then the first-value and then the middle -value.
"2: If the middle-value is empty, the last part of the first-value is repeated"¶
Example:¶
The middle-value is left out now. Then subpart 2 of the first value is repeated. Please observe that no space must exist between the two |*||*|!
TS: backColor = red || yellow |*||*| blue || olive
Introduction (red) first, subpart 1
Who are we? (yellow) first, subpart 2
Business (yellow) first, subpart 2 (repeated)
Contact (blue) last, subpart 1
Links (olive) last, subpart 2
"3: If the first - and middle value are empty, the first part of the last-value is repeated before the last value"¶
Example:¶
The middle-value and first-value are left out now. Then the subpart 1 of the last value is repeated. Please observe that no space must exist between the two |*||*|!
TS: backColor = |*||*| blue || olive
Introduction (blue) last, subpart 1 (repeated)
Who are we? (blue) last, subpart 1 (repeated)
Business (blue) last, subpart 1 (repeated)
Contact (blue) last, subpart 1
Links (olive) last, subpart 2
"4: The middle value is repeated"¶
Example:¶
TS: backColor = red |*| yellow || green |*|
Introduction (red) first
Who are we? (yellow) middle, subpart 1
Business (green) middle, subpart 2
.... (yellow) middle, subpart 1
.... (green) middle, subpart 2
.... (yellow) middle, subpart 1
.... (green) middle, subpart 2
Contact (yellow) middle, subpart 1
Links (green) middle, subpart 2
Overview with abstract examples¶
The following table gives you a condensed overview of how the optionSplit rules work together:
optionSplit |
Resulting items |
Rule |
---|---|---|
a |
a a a a |
|
a || b || c |
a b c c c ... |
|
a || b |*| c |
a b c c c ... |
|
a || b |*| c |*| d || e |
a b c c ... c c d e |
Rule 1 |
a || b |*| c |*| d || e |
a b d e |
Rule 1 |
a || b |*| c |*| d || e |
a d e |
Rule 1 |
a || b |*||*| c || d |
a b ... b c d |
Rule 2 |
|*||*| a || b |
a a ... a b |
Rule 3 |
a |*| b || c |*| |
a b c b c b c ... b c |
Rule 4 |