Redirect a předání vstupních GET parametrů

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Tomáš Kuba
Člen | 15
+
0
-

Ahoj všem,
hledám řešení jak si v url/routě uchovat a předávat GET paramtery se kterými je na stránky uživatel směrován. Typicky to využívají různé bannerové kampaně.

Aktuálně bohužel ztrácím tyto GET paramtery během prvního redirectu kdy z adresy http://domena.cz dělám http://domen.cz/cs/uvod/ tj. dosadím default jazyk a default stránku.

Aktuálně routa vypadá takto:

$router[] = new Route('[<lang (cs|de)>]/<firstLevel>/<secondLevel>', array(
			'lang' => NULL,
			'firstLevel' => NULL,
			'secondLevel' => NULL,
			'presenter' => 'Front:Website',
			'action' => 'page'));

Tuším že na konci routy chybí něco jako „?[.*]“ ale nedaří se mi najít jak to správně zapsat.

Předpokládám, že jednotlivé GET paramtery je pak nutné předat v rámci druhého paramteru (pole) funce redirect která aktuálně vypadá takto:

$this->redirect('this', array(
				'lang' => $this->lang,
				'firstLevel' => $this->firstLevel,
				//zde mají být další GET paramtery
			));

Předem děkuji za radu nebo napovězní

Editoval Tomáš Kuba (23. 8. 2011 9:51)

Tomáš Kuba
Člen | 15
+
0
-

Tak nevim kde sem se zamotal ale pokud je routa:

$router[] = new Route('[<lang (cs|de)>]/<firstLevel>/<secondLevel>?[.*]', array(
			'lang' => NULL,
			'firstLevel' => NULL,
			'secondLevel' => NULL,
			'presenter' => 'Front:Website',
			'action' => 'page'));

a redirect vypadá:

$this->redirect('this', array_merge($_GET,array(
				'lang' => $this->lang,
				'firstLevel' => $this->firstLevel)
			));

tak paramtery projdou dál. Někdy je třeba to prostě napsat/říct někomu jinému a řešení přijde samo :)

Robyer
Člen | 74
+
0
-

Tak nevím, ale není lepší použít jednoduše persistentní parametry?

Tomáš Kuba
Člen | 15
+
0
-

Pokud mne paměť nešálí, persistentní parametry musí být přesně pojmenované – já však nevím s jakými GET parametry je uživatel na web nasměrován z bannerové kampaně. Potřebuji je však zachovat a předat minimálně na první stránku webu, kde je najdou JS analytické tooly.

Filip Procházka
Moderator | 4668
+
0
-

Všechny tyhle analytics hlouposti mají prefix utm_, je možné v presenteru upravit metodu getPersistentParams, aby tyto parametry automaticky označovala za persitentní, takže je nemusíš mít v presenteru, ale vždy se zachovají.