Redirect a předání vstupních GET parametrů
- Tomáš Kuba
- Člen | 15
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
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 :)
- Tomáš Kuba
- Člen | 15
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
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í.