Zum Inhalt springen

Weitere Variablen aus der URL übergeben

Erstellt am 21. August 2007 · 6 Antworten · letzte Antwort am 3. Dezember 2007

Tags: Links, Frage

Sareen ·

Hallo Forum,

wie kann ich in einem Menü zusätzliche Variablen, die dort von diversen Extensions stecken, einfach weiter übergeben. Beispiel:

Ich habe ein Sprach-Menü:

languagemenu = HMENU
languagemenu {
    special = language
    special.value = 1,0,2
    wrap = <ul>|</ul>
    1 = TMENU
    1.NO = 1
    1.NO.stdWrap.override = [en] || [de] || [fr]
    1.NO. linkWrap = <li>|</li>
}

Das Menü funktioniert prinzipiell bestens. Allerdings beim Umschalten der Sprache gehen alle zusätzlichen Variablen in der URL verloren.
z.B.:
URL vor Menü-Benutzung: ?id=17&L=0&pic=5
nach Menü-Benutzung: ?id=17&L=1
ich hätte aber gerne die Variabel pic=5 oder was sonst noch so in der URL hängt mit übergeben. Also zu folgendem Ergebnis: ?id=17&L=1&pic=5
Denn die weiteren Variablen in der URL zeigen oft einen speziellen Inhalt an. Das Sprachmenü soll ja zu genau DIESEM Inhalt in der anderen Sprache führen und nicht zur jeweils zugehörigen Übersichtsseite.

ich freue mich über jeden noch so kleinen Hinweis.

beste Grüße

Sareen

Unbekannter Benutzer ·

Entweder du baust deine Sprachumschaltung selbst über typolink, da kann man dann nämlich alle Parameter wieder mit in die neue URL aufnehmen lassen, oder du definierst diese Variablen genauso wie L bei config.linkVars. Dann werden die auch immer weitergegeben.

Grüße
Christian

Sareen ·

Hallo Christian,

vielen lieben Dank! Mit config.linkVars habe ich schon herumprobiert, allerdings nicht hinbekommen. Kannst Du mir da noch einen Tipp geben?
Aktuell steht bei mir:

config.linkVars = L

das sollte dann wohl heißen:

config.linkVars = L,pic

So funktioniert es allerdings trotzdem noch nicht.

beste Grüße

Sareen

Unbekannter Benutzer ·

Anscheinend musst du es doch von Hand machen:

languagemenu = COA
languagemenu {
wrap = <ul>|</ul>
10 = TEXT
10 {
value = [en]
wrap = <li>|</li>
typolink.parameter.data = page:uid
typolink.additionalParams = &L=1
typolink.addQueryString = 1
typolink.addQueryString.method = GET
}


}

Das ist der Ansatz, du musst jetzt den 10er Block für die anderen Sprachen wiederholen, aber damit bleiben dann deine Parameter erhalten.

Edit: kleine Korrektur am Code

Sareen ·

Vielen Dank Christian,

das ist schon eine rießen Hilfe für mich. Einzige Problem sind nun noch die verschiedenen Zustände des Menü's. Ich wollte natürlich für die aktive Sprache ein anderes wrap verwenden. Etwa so:

languagemenu = HMENU
languagemenu {
    special = language
    special.value = 1,0,2
    special.normalWhenNoLanguage = 0
    wrap = <ul>|</ul>
    1 = TMENU
    1.NO = 1
    1.NO.stdWrap.override = [en] || [de] || [fr]
    1.NO.linkWrap = <li>|</li>
    1.ACT < NO
    1.ACT.linkWrap = <li class="active">|</li>
    1.USERDEF1 < .NO
    1.USERDEF1.linkWrap = <li class="notavailable">|</li>
    1.USERDEF2 < .ACT
    1.USERDEF1.linkWrap = <li class="notavailable_active">|</li>
}

hast Du auch eine Idee, wie ich so was mit Deiner Methode hinbekommen kann? Spontan würde mir einfallen das Menü für jede Sprache neu zu bauen und dann mit Conditions für jede Sprache das Menü zu wählen, wo die entsprechende Sprache als Aktiv markiert ist. Aber wie mache ich es mit den Sprachen wo keine Übersetzung vorhanden ist (also für USERDEF1 und USERDEF2)? Da gibt es so einfach ja keine Condition.

liebe Grüße

Sareen

Sareen ·

Vielen Dank Christian,

Dank Deiner Hilfe hab' ich's nun hinbekommen:

languagemenu = HMENU
languagemenu {
   special = language
   special.value = 1,0,2
   wrap = <ul>|</ul>
   1 = TMENU
   1 {
    NO = 1
    NO {
       doNotLinkIt = 1
       linkWrap = <li>|</li>
       stdWrap.override = [en] || [de] || [fr]
       stdWrap.typolink.parameter.data = page:uid
       stdWrap.typolink.additionalParams = &L=1 || &L=0 || &L=2
       stdWrap.typolink.addQueryString = 1
       stdWrap.typolink.addQueryString.exclude = id,cHash
       stdWrap.typolink.addQueryString.method = GET
    }   
   }
}

beste Grüße

Sareen

mgbln ·

Hallo,
ist es mit "addQueryString" auch irgendwie möglich die aktuellen Parameter an einen Link auf eine externe Seite anzuhängen?

Bei mir klappt es nur bei internen Links 🙁

Danke,
MG