Získanie parametrov z URL iba pre presenter

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

Nette dokáže z url adresy zistiť, ktorým komponentám má predať aké údaje, napríklad ak je zadané url ?paging-page=3, tak komponente s názvom paging dá v loadState parameter page s hodnotou 3. Čo by sa mi celkom zišlo, je niečo takéto si zistiť v presenteri. Ak mám presenter FilmPresenter, tak by som rád zistil všetky premenné z url čo začínajú na film-, teda napríklad ?film-order=asc&film-orderby=name&paging-page=4

V presenteri by som dostal pekné pole array('order' => 'asc', 'orderby' => 'name') a o nič by som sa nemusel starať :) Zatiaľ by sa to dalo riešiť parsovaním $this->getHttpRequest()->getQuery(); to je ale zbytočne redundantné, lebo viem že to niekde v Nette je, len som to nenašiel.

o5
Člen | 416
+
0
-

$this->getParams() ?

Editoval o5 (8. 10. 2009 21:11)

fiso
Člen | 32
+
0
-

$this->getParams() vráti iba parametre ktoré pred sebou nemajú xxx- teda nevráti mi nič s film-order

JakubKohout
Člen | 92
+
0
-

Určitě ti poradí někdo kvalifikovanějśí ale já bych zkusil metody který jsou popsány zde: https://api.nette.org/…mponent.html ;)

fiso
Člen | 32
+
0
-

Zatiaľ to riešim tak, že v startupe mám toto:

// parse get parameters
foreach($this->getHttpRequest()->getQuery() as $name => $value) {
	$parts = (array) explode(self::NAME_SEPARATOR, $name, 2);
	if(count($parts) == 1) {
		$this->params[ $parts[0] ] = $value;
	} else {
		$this->params[ $parts[0] ][ $parts[1] ] = $value;
	}
}
Honza Marek
Člen | 1664
+
0
-

Ale vždyť parametry bez takové předpony patří k presenteru. S předponou patří k jednotlivým podkomponentám presenteru.