Hilft Dir bei Deiner Arbeit. Zeigt Dir das was nicht im Handbuch steht. Loest unloesbare Probleme. Das Schweizer Taschenmesser und die milchgebende Eier-Sau im Wollpelz in Sachen TYPO3.
Monday, June 26, 2017
Optionsplit verwenden
#
# BEISPIELCODE FUER OPTIONSPLIT
#
# die optionsplit-logik steht nur in wenigen properties zur verfuegung.
# beispielsweise verwendet ein CONTENT cObject diese logik nicht.
# anders aber ein TMENU oder GMENU, hier kann optionsplit verwendet werden.
# ebenso steht optionsplit bei den properties "cObj" und "wrap" der split-
# funktion zur verfuegung.
# zur ausfuehrung des untenstehenden beispielcodes sollten mind. drei pages
# vorhanden sein (zur erzeugung des HMENU), sowie auf der aktuellen seite
# mind. drei content-elemente.
temp.separator = TEXT
temp.separator.value = <hr>
page = PAGE
# optionsplit steht bei allen properties eines menuitems (NO, ACT, ...)
# zur verfuegung. via optionsplit wird der erste menu-eintrag ohne komma,
# und alle weiteren mit komma-symbol vorangestellt ausgegeben.
page.10 = HMENU
page.10 {
1 = TMENU
1 {
NO = 1
NO.allWrap = | |*| ,|
}
}
page.11 < temp.separator
# ein menu greift zunaechst nur auf daten der tabelle "pages" zu - bei anderen
# objekten / tabellen muss man anders vorgehen:
#
# via HMENU.special = userfunction und einer entspr. PHP-funktion koennen
# auch andere daten/tabellen abgefragt werden.
#
# wenn keine PHP-funktion benoetigt werden soll, dann koennen andere cObjects
# verwendet werden (bei denen stdWrap zur verfuegung steht), wie im folgenden
# demonstriert:
# 1. ein renderObj (bzw. je nach kontext) fuer die ausgabe,
# mit einem trennsymbol angehaengt
page_content_renderObj = TEXT
page_content_renderObj {
field = uid
wrap = |SPLIT_HERE
}
# (man beachte dass das trennsymbol "SPLIT_HERE" in diesem beispiel immer
# hinten angehaengt wird, auch beim letzten erzeugten renderObjs)
# 2. ein cObject - z.b. CONTENT - erzeugt den auszugebenden code,
# unter verwendung des obigen renderObj.
# via stdWrap.split wird der auszugebende code wieder aufgetrennt,
# und dabei via wrap (mit optionsplit) mit neuen individuellen
# trennsymbolen versehen:
# (hierbei werden auch leere werte gewrapped und ausgegeben - vgl. 3., unten)
page.20 = CONTENT
page.20 {
table = tt_content
select {
pidInList = this
}
renderObj = < page_content_renderObj
stdWrap {
split {
token = SPLIT_HERE
wrap = | |*| ,|
}
}
}
page.21 < temp.separator
# 3. "split" liefert auch leere werte zurueck, falls sich das trennsymbol
# am anfang oder am ende des jew. strings befindet, oder wenn zwei
# trennsymbole direkt aufeinanderfolgen.
# falls dieses verhalten nicht erwuenscht ist, kann split.wrap nicht
# direkt verwendet werden. anstelle dessen wird cObjNum (mit optionsplit)
# verwendet, und die jew. cObj's mit einer entsprechenden bedingung
# (if.isTrue) versehen.
page.30 < page.20
page.30 {
stdWrap {
split >
split {
token = SPLIT_HERE
cObjNum = 1 |*| 2
1.current = 1
1.if.isTrue.data = current
2 < .1
2.wrap = ,|
}
}
}
Ergebnis/Ausgabe:
Labels:
cobjnum,
gmenu,
hmenu,
menu,
optionsplit,
tmenu,
typoscript
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment