Zum Inhalt springen

typolink | URL mit GET Parameter der aktuellen Seite

Erstellt am 1. August 2008 · 9 Antworten · letzte Antwort am 1. August 2008

Tags: Links, Frage

TheRisingSun ·

Hallo,

ich scheitere momentan mal wieder an einer ganz einfachen Sache:

Ich möchte über 2 Links zwischen der deutschen Variante und einer englischen Variante hin und her schalten können.

Dabei müssen auch einige GET-Parameter berücksichtigt werden. Aber irgendwie scheint es nicht zu gehen. Die Angabe über additionalParams wird nicht berücksichtigt.

marks.SPRACHE = COA
marks.SPRACHE.10 = TEXT
marks.SPRACHE.10 {      	
     value = English
     typolink{
        parameter.data = getIndpEnv:TYPO3_SITE_SCRIPT
        additionalParams = &L=0
	wrap = <li> | </li>
     }	
}      	
marks.SPRACHE.20 = TEXT
marks.SPRACHE.20 {
     value=Deutsch
     typolink{
        parameter.data = getIndpEnv:TYPO3_SITE_SCRIPT
	additionalParams = &L=1
        wrap = <li> | </li>
     }
}

Es werden alle GET-Parameter erzeugt außer dem Parameter "L", der durch additionalParams angehängt werden soll.

Silvio_L ·

Hallo,

probier mal folgendes (nicht getestet):

typolink{
  parameter = {getIndpEnv:TYPO3_SITE_SCRIPT}&L=1
  parameter.insertData = 1  
  wrap = <li> | </li>
}

Gruß

Silvio

TheRisingSun ·

Super damit gehts! Aber warum?

Ich habe nochmal was anderes probiert und zwar folgendes:

typolink{
        parameter.data = page:uid        		
	additionalParams = &L=1			
        wrap = <li> | </li>
}

Merkwürdigerweise wurden die additionalParams mit page:uid angehängt. Natürlich fehlen dabei die anderen GET Parameter aber warum geht es mit parameter.data = getIndpEnv:TYPO3_SITE_SCRIPT nicht?

Danke schon mal!

TheRisingSun ·

@Silvio_L:
Habe gerade bemerkt, dass bei Deiner Methode immer weitere L-Parameter angehängt werden. Ich möchte aber das dieser Parameter nur einmal im URL vorkommt. Das geht doch bestimmt auch irgendwie.

TheRisingSun ·

Danke für die Links! Die typolink-Seite habe ich allerdings schon diverse mal durch und trotzdem nicht viel extrahieren können. Wie man auf den ersten kommen soll ist mir ein Rätsel. Mit fehlen einfach Links in der TSref.

Ich habe das mal angewendet aber es bleibt das gleiche Problem: Im URL ist der Parameter erst einmal, dann zwei mal und dann wieder einmal usw zu sehen.

marks.SPRACHE = COA
	marks.SPRACHE.10 = TEXT
	marks.SPRACHE.10 { 	    	
     		value = English
     		typolink{
        		parameter = {getIndpEnv:TYPO3_SITE_SCRIPT}&L=1
        		parameter.insertData = 1   
			uniqueLinkVars = 1
			addQueryString = 1       		
			wrap = <li class="subnav"> | </li>
     		}	
	}      	
	marks.SPRACHE.20 = TEXT
	marks.SPRACHE.20 {
    		value=Deutsch
     		typolink{
        		parameter = {getIndpEnv:TYPO3_SITE_SCRIPT}&L=0
			parameter.insertData = 1   
			uniqueLinkVars = 1
			addQueryString = 1
        		wrap =  <li class="subnav"> | </li>
     		}
     	}

Ich weiß, dass der letzte Parameter zählt aber es sieht einfach unschön aus.

Warum geht es denn nicht mit parameter.data = getIndpEnv:TYPO3_SITE_SCRIPT
und additionalParams = &L=0 ?

steffenk ·

Du musst die TSref schon richtig lesen!

config.uniqueLinkVars = 1

und der Link:

SPRACHE.10.typolink {
  parameter.data = page:uid
  additionalParams = &L=1
  addQueryString = 1
}
TheRisingSun ·

Upps das mit config.uniqueLinkVars = 1 stimmt aber Dein anderer Hinweis generiert einen Link der einen URL mit doppeltem ID-Parameter erzeugt:

http://localhost/t3_cms/testsystem/index.php?id=37&L=0&id=37

Hier das TS:

marks.SPRACHE = COA
	marks.SPRACHE.10 = TEXT
	marks.SPRACHE.10 { 	    	
     		value = English
     		typolink{
        		parameter.data = page:uid
  			additionalParams = &L=1
			addQueryString = 1
        		wrap =  <li class="subnav"> | 
     		}	
	}      	
	marks.SPRACHE.20 = TEXT
	marks.SPRACHE.20 {
    		value=Deutsch
     		typolink{
        		parameter.data = page:uid
  			additionalParams = &L=0
			addQueryString = 1
        		wrap =  / | </li>
     		}
     	}

Wenn weitere GET Parameter vorhanden sind, gibt es keine Probleme. Also vielen Dank!!!

steffenk ·

dann greift Dein
config.uniqueLinkVars = 1
nicht - überprüfe, obs richtig eingebunden ist (also auch auf Rootebene)