Hallo,
ich habe auf meiner HP oben zwei Flaggensymbole. Wenn ich auf deutsch bin und auf die englische Flagge klicke, soll die komplette URL beibehalten werden mit dem Zusatz "&L=1" hinten dran. Umgekehrt natürlich auch. Momentan wird mir nur die aktuelle URL angezeigt.
#Sprache auswählen
sprachen = COA
sprachen {
30 = TEXT
30{
31 = TEXT
31{
data = getenv:HTTP_REFERER
wrap = URL: |
}
wrap = <a class="de" alt="Deutsch" href="|"></a>
}
40 = TEXT
40.value = |
50 = TEXT
50{
51 = TEXT
51{
data = getenv:HTTP_REFERER
wrap = URL: |
}
wrap = <a class="en" alt="English" href="|"></a>
}
}
Wenn ich aber hinter "wrap = URL: |" ein "&L=0" einsetze, sieht die URL noch genauso aus wie vorher.
Wenn ich in "wrap = <a class="de" alt="Deutsch" href="|"></a>" nach dem | das "&L=0" einsetze, sprich
"wrap = <a class="de" alt="Deutsch" href="|&L=0"></a>", wird in der URL nur das &L=0 angezeigt, die URL selbst ist aber nicht mehr vorhanden.
Ohne typolink ziemlich umständlig - ich verwende dazu immer folgendes Snippet auf Basis von HMENU:
temp.langMenu = HMENU
temp.langMenu {
special = language
special.normalWhenNoLanguage = 0
special.value = 0,1
addQueryString = 1
addQueryString.exclude = id,L,cHash
1 = TMENU
1 {
NO = 1
NO {
stdWrap.setCurrent = <span id="languageSelectorDe"><img src="pub/css/img/flag_de.jpg" /></span> || <span id="languageSelectorEn"><img src="pub/css/img/flag_gb.jpg" /></span>
stdWrap.current = 1
}
ACT < .NO
ACT {
stdWrap.setCurrent = <span id="languageSelectorDe" class="active"><img src="pub/css/img/flag_de_a.jpg" /></span> || <span id="languageSelectorEn" class="active"><img src="pub/css/img/flag_gb_a.jpg" /></span>
doNotLinkIt = 1
}
}
}
Den Pfad zu den Flaggen müsstest du noch anpassen 😉
Ansonsten würde ich dazu raten auf jeden Fall "typolink" zu verwenden.
Also an sich funktioniert das jetzt, nur wird der cHash leider nicht kopiert.
Beispiel:
//bla/index.php?id=38&tx_news_pi1[news]=2&tx_news_pi1[controller]=News&tx_news_pi1[action]=detail&cHash=872e1190aadfa5f0707e30d0644cd488
Wenn ich dann auf gb klicke, bekomm ich zwar eine englische News, aber die falsche ^^
//bla/index.php?id=38&tx_news_pi1[news]=2&tx_news_pi1[controller]=News&tx_news_pi1[action]=detail&L=1
Da fehlt leider der cHash.
Okay, ich hab nochmal ein wenig herumgegooglet und folgenden Code gefunden, der wunderbar funktioniert =) Trotzdem vielen Dank, hat mir echt weitergeholfen.
#Sprache auswählen
sprachen = HMENU
sprachen {
# Ein Sprach-Menü wird erzeugt
special = language
# Reihenfolge und Auswahl der Sprachen im Menü
special.value = 1,0
special.normalWhenNoLanguage = 0
#wrap = <ul id="language_switch">|</ul>
1 = TMENU
1 {
noBlur = 1
# Standard Sprachen
NO = 1
NO {
#linkWrap = <li>|</li>
# Standard-Titel für den Link wäre Seitenttitel
# => anderer Text als Link-Text (Optionsschift)
stdWrap.override = <span id="languageSelectorEn"><img src="fileadmin/resources/public/images/icons/gb.gif" /></span> || <span id="languageSelectorDe"><img src="fileadmin/resources/public/images/icons/de.gif" /></span>
# Standardmäßige Verlinkung des Menüs ausschalten
# Da diese sonstige GET-Parameter nicht enthält
doNotLinkIt = 1
# Nun wird der Link mit den aktuellen GET-Parametern neu aufgebaut
stdWrap.typolink.parameter.data = page:uid
stdWrap.typolink.additionalParams = &L=1 || &L=0
stdWrap.typolink.addQueryString = 1
stdWrap.typolink.addQueryString.exclude = L,id,cHash,no_cache
stdWrap.typolink.addQueryString.method = GET
stdWrap.typolink.useCacheHash = 1
stdWrap.typolink.no_cache = 0
}
# Aktive Sprache
ACT < .NO
ACT.linkWrap = <li class="active">|</li>
# NO + Übersetzung nicht vorhanden
USERDEF1 < .NO
# ACT + Übersetzung nicht vorhanden
USERDEF2 < .ACT
}
}