Sprachwechlser mit Realurl als Dropdown [Gelöst]

  • 0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    05. 09. 2008, 17:19

    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:

    [TS]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
    }
    }
    }
    [/TS]

    Ich bekomme dann folgende Ausgabe:
    [HTML]<option>
    <a href="de/aktuell/">
    Deutsch
    </a>
    </option>
    ...
    [/HTML]

    benötige aber diese, da ich den Sprachwechsel mit JavaScript löse:
    [HTML]<option value="de/aktuell/">
    Deutsch
    </option>
    ...
    [/HTML]

    optimalerweise wird bei der aktuellen sprache noch das attribut selected="selected" in der option hinzugefügt.

    bin typo3-neuling. Wer kann mir helfen? Danke


  • 1
  • maik maik
    Jedi-General
    0 x
    1194 Beiträge
    1 Hilfreiche Beiträge
    06. 09. 2008, 09:58

    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. ;)

    http://www.caroonline.de

  • 0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    06. 09. 2008, 16:11

    danke für den tipp. habe das jetzt mal ausprobiert und folgendes script:
    [TS]lib.languageSwitcher = HMENU
    lib.languageSwitcher {
    special = language
    special.value = 0,2
    1 = JSMENU
    1.1.firstLabel = [Choose your language]}[/TS]

    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.

  • maik maik
    Jedi-General
    0 x
    1194 Beiträge
    1 Hilfreiche Beiträge
    06. 09. 2008, 23:18

    wenn dir das nicht weiter hilft, dann musst du das halt per PHP selber programmieren.

    http://www.caroonline.de

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    07. 09. 2008, 00:07

    oder eine der extra dafür gemachten Extensions einsetzen (z.B. sr_language_menu)

  • 0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    07. 09. 2008, 14:18

    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

  • 0 x
    11 Beiträge
    0 Hilfreiche Beiträge
    03. 08. 2009, 21:12

    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:

    [TS]parameter.field = uid
    returnLast = url
    [/TS]

    Hier der komplette Code am Beispiel einer Formularauswahl:

    [TS]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>
    }
    }
    }
    }
    }

    [/TS]

  • 1