Zum Inhalt springen

Sprachwechlser mit Realurl als Dropdown

Erstellt am 5. September 2008 · 6 Antworten · letzte Antwort am 3. August 2009

Tags: Frage

psychoschlumpf1 ·

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

maik ·

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. 😉

psychoschlumpf1 ·

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.

psychoschlumpf1 ·

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

la_sabian ·

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>
                        }
                    }
                }
            }
        }