Hallo zusammen,
ich habe jetzt schon unzählige Posts und Anleitungen zu Sprachwechslern gelesen, aber mein Problem ist doch zu individuell.
Ich habe ein <select>-Element als ein TemplaVoila-Bereich, in den ich meine beiden Sprachen als Options ausgeben möchte. Bisher habe ich das:
lib.languageSwitcher = COA
lib.languageSwitcher {
10 = TEXT
10 {
value = Deutsch
wrap = <option> | </option>
typolink {
parameter.data = TSFE:id
additionalParams = &L=0
}
}
20 = TEXT
20 {
value = English
wrap = <option> | </option>
typolink {
parameter.data = TSFE:id
additionalParams = &L=2
}
}
}
Ich bekomme dann folgende Ausgabe:
<option>
<a href="de/aktuell/">
Deutsch
</a>
</option>
...
benötige aber diese, da ich den Sprachwechsel mit JavaScript löse:
<option value="de/aktuell/">
Deutsch
</option>
...
optimalerweise wird bei der aktuellen sprache noch das attribut selected="selected" in der option hinzugefügt.
bin typo3-neuling. Wer kann mir helfen? Danke
Warum verwendest du nicht das special language im HMENU.
Das in kombination mit einem JSMENU erzeugt dir automatisch das Menü.
Du brauchst dann nicht manuell die Parameter zusammen basteln.
Ein typolink ohne link (a href) ist schon etwas sehr individuell, da hast du allerdings recht. 😉
danke für den tipp. habe das jetzt mal ausprobiert und folgendes script:
lib.languageSwitcher = HMENU
lib.languageSwitcher {
special = language
special.value = 0,2
1 = JSMENU
1.1.firstLabel = [Choose your language]
}
das ganze hat 2 probleme:
- es wird der seitentitel statt der sprache gezeigt
- die links der einträge verweisen alle auf die deutsche version der seite (ich setze realurl ein, daher sind alle .../de/aktuell/)
und das wäre ein nice-to-have:
- der erste eintrag "choose your language" ist eigentlich überflüssig, ich hätte gerne die gerade gewählte sprache voreingestellt
ich hab mir mal die tsref zu jsmenu und special=language angeschaut, aber die doku ist dürftig, bzw. hat keine beispiele. über google finde ich komischerweise auch fast keine beispiel zu so einer sprachauswahl.
wenn dir das nicht weiter hilft, dann musst du das halt per PHP selber programmieren.
oder eine der extra dafür gemachten Extensions einsetzen (z.B. sr_language_menu)
ich habs jetzt mit genannten plugin gelöst. zwar mit viel nervlichen anstrengungen hinsichtlich der konfiguration und mit überschreiben des css hart im plugin, aber es geht. konfiguration wird nämlich nur in constants berücksichtigt, nicht im setup. das muss man erst mal herausfinden...
danke
Hallo,
falls noch jemand an einer leichteren Lösung zu diesem Problem interessiert ist: an dem COA-Code fehlten lediglich zwei Zeilen, so dass dieser funktioniert. Nämlich die Folgenden:
parameter.field = uid
returnLast = url
Hier der komplette Code am Beispiel einer Formularauswahl:
FORM = HMENU
FORM {
special = directory
special.value = 34
wrap = <table width="660" cellspacing="0" cellpadding="0" border="0"><tr><td height="50" width="200" class="contenttext" valign="top">Ihr Anliegen*</td><td width="460" align="left"><form action=""><select onchange="window.location=this.options[this.selectedIndex].value" id="select">|</select></form></td></tr></table>
1 = TMENU
1 {
expAll = 1
NO {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10 {
wrap = <option value="http://www.eureadresse.com/|">
typolink {
parameter.field = uid
parameter.data = TSFE:id
returnLast = url
}
}
20 = TEXT
20 {
field = subtitle//title
wrap = |</option>
}
}
}
ACT = 1
ACT {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10 {
wrap = <option value="http://www.eureadresse.com/|" selected>
typolink {
parameter.field = uid
parameter.data = TSFE:id
returnLast = url
}
}
20 = TEXT
20 {
field = subtitle//title
wrap = |</option>
}
}
}
}
}