[Frage] Marker im Typoscript werden nicht ersetzt? TYPO3-Version: 4.7.12

  • flanger flanger
    Padawan
    0 x
    52 Beiträge
    1 Hilfreiche Beiträge
    18. 11. 2013, 11:37

    Hi!
    Ich stehe hier mächtig auf dem Schlauch und könnte etwas Hilfe gut gebrauchen. Wahrscheinlich bin ich einfach zu doof...
    Es geht darum, dass ich einen Sprachumschalter auf meiner Seite per Marker einbinde. Je nach Sprache ist eine andere Fahne oben zu sehen und der Umschalter entsprechend vertauscht...
    Von daher gibt es in meinem HTML Template den Aufruf zum Marker:

    1. ###LANGUAGESWITCHER###

    Im Typoscript möchte ich nun diesen Marker dynamisch verändern. Es soll jeweils zur aktuellen Seite + Language Flag weitergeleitet werden. Dazu habe ich folgendes Typoscript entworfen:

    1. marks {
    2. SEITENURL = TEXT
    3. SEITENURL.typolink {
    4. parameter.data = TSFE:id
    5. returnLast=url
    6. }
    7. LANGUAGESWITCHER = TEXT
    8. LANGUAGESWITCHER.value = <form name="form"><select style="width:60px" name="link" onChange="javascript:window.location.href = document.form.link.options[document.form.link.selectedIndex].value;"><option value="'###SEITENURL###'?L=0" data-image="fileadmin/templates/img/german.gif"><span style="float:right"></span> </option><option value="'###SEITENURL###'?L=1" data-image="fileadmin/templates/img/gb.gif"><img src=""> </option></select></form>
    9. LANGUAGESWITCHER.lang.en = <form name="form"><select style="width:60px" name="link" onChange="javascript:window.location.href = document.form.link.options[document.form.link.selectedIndex].value;"><option value="###SEITENURL###?L=1" data-image="fileadmin/templates/img/gb.gif"><img src=""> </option><option value="###SEITENURL###?L=0" data-image="fileadmin/templates/img/german.gif"><span style="float:right"></span> </option></select></form>
    10. }

    Das Problem ist nun, dass die Marker im Typoscript nicht ersetzt werden. Ist das ein Grundlegendes Problem oder kann man das irgendwie lösen? Wäre super wenn mir jemand auf die Sprünge helfen könnte! Danke!!!

  • Hilfreichster Beitrag

  • Tevsa Tevsa
    Sternenflotten-Admiral
    1 x
    171 Beiträge
    5 Hilfreiche Beiträge
    18. 11. 2013, 15:04 - Hilfreichster Beitrag

    Das ist ein gute Frage.... Ist das einen Extension, die diesen Wert benutzen soll?
    Ich kapiere nicht ganz was du damit vorhast...
    Versuch mal soetwas:

    1. LANGUAGESWITCHER = COA
    2. LANGUAGESWITCHER.10 = TEXT
    3. LANGUAGESWITCHER.10.value(
    4. <form name="form"><select style="width:60px" name="link" onChange="javascript:window.location.href = document.form.link.options[document.form.link.selectedIndex].value;"><option value="
    5. )
    6. LANGUAGESWITCHER.20 = TEXT
    7. LANGUAGESWITCHER.20.typolink {
    8. parameter.data = TSFE:id
    9. returnLast=url
    10. }
    11. LANGUAGESWITCHER.30 = TEXT
    12. LANGUAGESWITCHER.30.value(
    13. ?L=0" data-image="fileadmin/templates/img/german.gif"><span style="float:right"></span> </option><option value="
    14. )
    15.  
    16. LANGUAGESWITCHER.40 = TEXT
    17. LANGUAGESWITCHER.40.typolink {
    18. parameter.data = TSFE:id
    19. returnLast=url
    20. }
    21. ....

    Die Idee dahinter: Du brauchst einen HTML-String. die einzige Variable ist "SEITENURL" Die kannst du mein eine COA - Object zusammensetzen. Ich habe leider grade wenig Zeit den Code vollständig zu setzen, aber ich glaube mit dem Beispiel Oben kann man erkenne was ich meine.
    Konstanten brauchst du da nicht.
    Die Seiten URL kannst duch als temp.Object mehrfachnutzen. ABer das ist dann Optimierung und nicht mehr erstellung.

    Mein Prof sagte damals immer 1.) Make it run 2) make ist beautiful...

    Ich hoffe es hoilft

    Gruß
    Tevsa

    Irgend etwas is' ja immer...


  • flanger flanger
    Padawan
    0 x
    52 Beiträge
    1 Hilfreiche Beiträge
    19. 11. 2013, 12:11

    na gut :). Ich habs gelöst bekommen! Die Condition hat nicht gegriffen, weil sie sich innerhalb einer {} für die Marker und für das Page Object befand.
    Es war zwar eine schwere Geburt, aber es läuft! Ich danke Tevsa für die GROßARTIGE Hilfe!!!

  • flanger flanger
    Padawan
    0 x
    52 Beiträge
    1 Hilfreiche Beiträge
    19. 11. 2013, 14:35

    jetzt muss ich doch nochmal nachhaken. Auf meinem Localhost funktioniert das alles ganz wunderbar! Auf meiner Liveumgebung leider nicht. Ich habe dort RealURL aktiviert und die beiden Sprachen werden jeweils in Verzeichnissen abgebildet.
    Also
    meinedomain.de/de/home.html
    und
    meinedomain.de/en/home.html

    Mit dem obigen Code wird ja ein ?L=1 an die URL angehängt. Das hat keine Auswirkung auf die Seitensprache wenn real_url aktiviert ist. Ich habe auch den Code schon umgeschrieben, so dass anstatt dem ?L=1 ein /en/ vorne angestellt wird. Dann lauten die URLs aber so
    meinedomain.de/en/de/home.html was natürlich auch nicht funktioniert....Das Sprachverzeichnis ist dann doppelt... ARGS!
    Kann mir nochmal jemand auf die Sprünge helfen wie man das Problem lösen könnte?

  • flanger flanger
    Padawan
    0 x
    52 Beiträge
    1 Hilfreiche Beiträge
    20. 11. 2013, 09:20

    Ich habe es endlich gelöst. Der Trick war anstatt den Parameter ?L=1 bzw ?L=0 direkt zu übergeben, dass dafür vorgesehene Typoscript einzusetzen.

    1. additionalParams = &L=0