Neulich sollte in einem Menü an jeden Eintrag der selbe Parameter angehängt werden. Ist das ein feststehender String, dann ist das relativ einfach:
mainmenu.10 = HMENU mainmenu.10 { entryLevel = 0 wrap = <ul>|</ul> 1.noBlur = 1 1 = TMENU 1.addParams = &agnUID={GPvar:agnUID} 1.NO = 1 1.NO { ... } }Wichtig ist hier die Zeile „1.addParams = …“ doch leider lässt sich so nur ein String als Parameter anhängen.
Doch was, wenn – wie in diesem Fall – kein String sondern zum Beispiel ein Get-Parameter dynamisch ausgelesen werden soll und dann als Parameter angehängt werden soll?
Dazu muss das Menü quasi von Hand zusammenbauen. Eigentlich war die nun folgende Methode dazu gedacht externe Links und Shortcuts im Menü unterzubringen, doch sie funktioniert auch für diesen Zweck:
mainmenu.10 = HMENU mainmenu.10 { entryLevel = 0 wrap = <ul>|</ul> 1.noBlur = 1 1 = TMENU 1.NO = 1 1.NO { doNotLinkIt = 1 wrapItemAndSub= <li>|</li> stdWrap.cObject = CASE stdWrap.cObject { key.field = doktype default = TEXT default { typolink.parameter.field = uid field = subtitle ifEmpty.field = title stdWrap.htmlSpecialChars = 1 typolink.title.field = title // subtitle typolink.additionalParams.cObject = TEXT typolink.additionalParams.cObject.data = GPvar:agnUID typolink.additionalParams.cObject.wrap = &agnUID=| } } } }Hier kann man nun über typolink.additionalParams alles an die Menüeinträge dranhängen was das Herz begehrt, da bei additionalParams der stdWrap und das cObject zur Verfügung stehen.
P.S.: Verwendet man RealURL lassen sich diese zusätzlichen Parameter auch noch im Pfad unterbringen…
Hi tobi,
vielen Dank für den Tip, hab ich natürlich sofort ausprobiert.
Aber bei mir funktioniert das so leider nicht.
Mein Menü würd dann so ausschaun, aber der Get-Parmeter wird leider nirgends mit angehängt:
mainmenu = COA_INT
mainmenu.10 = HMENU
mainmenu.10 {
entryLevel = 0
wrap = <ul>|</ul>
stdWrap.insertData=1
1 = TMENU
1.addParams = &agnUID={ GPvar:agnUID }
1.noBlur = 1
1.NO = 1
1.NO {
ATagTitle.field = abstract // description // title
wrapItemAndSub = <li>|</li>
}
1.CUR < .1.NO
1.CUR.wrapItemAndSub = <li class=”active”>|</li>
1.ACT < .1.CUR
}
Siehst Du da irgendwo nen Fehler? Oder warums nicht funktioniert? Deine Lösung wär natürlich schöner, weil kürzer… 😉
Viele Grüße
Marco
Hi tobi,
vielen Dank für den Tip, hab ich natürlich sofort ausprobiert.
Aber bei mir funktioniert das so leider nicht.
Mein Menü würd dann so ausschaun, aber der Get-Parmeter wird leider nirgends mit angehängt:
mainmenu = COA_INT
mainmenu.10 = HMENU
mainmenu.10 {
entryLevel = 0
wrap = <ul>|</ul>
stdWrap.insertData=1
1 = TMENU
1.addParams = &agnUID={ GPvar:agnUID }
1.noBlur = 1
1.NO = 1
1.NO {
ATagTitle.field = abstract // description // title
wrapItemAndSub = <li>|</li>
}
1.CUR < .1.NO
1.CUR.wrapItemAndSub = <li class=”active”>|</li>
1.ACT < .1.CUR
}
Siehst Du da irgendwo nen Fehler? Oder warums nicht funktioniert? Deine Lösung wär natürlich schöner, weil kürzer… 😉
Viele Grüße
Marco
Hallo Marco,
Ich habe das ganze auf typo3 4.0.5 (und älteren versionen) getestet, da hat das funktioniert.
komischerweise geht das bei aktuellen typo3 varianten nicht mehr so, aber da kann man es minimal anders lösen ( funkt aber dann nicht mehr auf alten versionen 🙁 )
mainmenu = COA_INT
mainmenu.10 = HMENU
mainmenu.10 {
entryLevel = 0
wrap = |
1 = TMENU
1.noBlur = 1
1.NO = 1
1.NO {
ATagTitle.field = abstract // description // title
wrapItemAndSub = |
additionalParams = &agnUID={ GPvar:agnUID }
additionalParams.insertData=1
}
1.CUR |
1.ACT
klappt bestens. alternativ kann man dies auch nur für eine bestimmte seite machen (anstelle doktype)
stdWrap.cObject = CASE
stdWrap.cObject {
key.field = uid
default = TEXT
default {
field = nav_title // title
stdWrap.htmlSpecialChars = 1
typolink {
parameter.field = uid
title.field = subtitle // title
}
}
# Erweiterte Suche
40 < .default
40 {
typolink.additionalParams = &tx_indexedsearch[ext]=1
}
}
Hi,
wie mache ich denn weitere Parameter an eine externe URL?
Das hier geht bei internen Links.
NO = 1
NO {
#automatische Verlinkung des Menüs ausschalten
doNotLinkIt = 1
wrapItemAndSub=|
stdWrap.cObject = CASE
stdWrap.cObject {
key.field = doktype
default = TEXT
default {
typolink.parameter.field = uid
field = title
stdWrap.htmlSpecialChars = 1
typolink.additionalParams = &source={GPvar : source}
typolink.additionalParams.insertData=1
}
#3 = external url
3 = TEXT
3 {
field = title
typolink.parameter.field = url
typolink.additionalParams = &source={GPvar : source}
typolink.additionalParams.insertData=1
typolink.extTarget.field = target
}
}
}
ACT < .NO
ACT {
wrapItemAndSub= |
additionalParams = &source= {GPvar : source}
additionalParams.insertData=1
}