Zum Inhalt springen

Parameter/Variable in URL einfügen

Erstellt am 4. Februar 2014 · 3 Antworten · letzte Antwort am 10. Februar 2014

Tags: Frage

Teppichfussel ·

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 = &nbsp;|&nbsp;
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.

toifel ·

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>&nbsp; || <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>&nbsp; || <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.

Teppichfussel ·

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.

Teppichfussel ·

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>&nbsp; || <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
  }
}