plink this
- 14113
- Člen | 33
Ahoj chtel jsem se zeptat jestli je mozne vytvorit odkaz v sablone a pritom
pouzit uz promenne v url. Priklad:
example.cz/?id=1
a v sablone bych chtel uz jen napsat {plink zkouska
‚name‘=>‚ano‘} a ziskat example.cz/?id=1&name=ano
ale toto bohuzel nejde, preda se jen ‚name‘. Takze jsem se chtel zeptat
jestli je mozne pouzit:
{plink this …?} kdy url zustane ale nemuzu se zase odkazat na jiny
presenter.
(napadla me jen moznost $_SERVER[‚argv‘] ale to se mi moc nelibi :P)
Predem dik za odpoved
Editoval 14113 (19. 11. 2009 19:58)
- Ondřej Mirtes
- Člen | 1536
Přesně k tomuto slouží persistentní parametry.
Zápis:
class DefaultPresenter extends BasePresenter {
public $myParameter = 'defaultValue';
public static getPersistentParams() {
return array('myParameter');
}
}
Pokud budeš v nějakém jiném presenteru a odkazovat na tento Default, použije se v adrese ta defaultní hodnota. Pokud chceš jinou, stačí zapsat:
{plink Default:, 'myParameter' => 'someDifferentValue'}
V rámci toho DefaultPresenteru už pak tu hodnotu nemusíš znovu uvádět, předává se sama.
Je to praktické hlavně pro kategorie zboží v e-shopu, pro předávání aktuálního jazyku aplikace apod.
- 14113
- Člen | 33
Nevim jestli to chapu dobre, ale rekneme ze jsem v example.cz/nevim/1 a odkazu na exemple.cz/dobre/ a tim ze jsem tam nezadal zadnou hodnotu a mam nastaveno jako dafaultni (v presenteru ‚dobre‘) 2 , tak se mi odkaze na exemple.cz/dobre/2 ? je to tak??
Takze jestli to dobre chapu tak to neni to co potrebuju, ja se potrebuju
dostat dal a ne zpet.
Tzn.
example.cz?id=1 ⇒ example.cz?id=1&name=joj proste si mapatovat to id
Editoval 14113 (19. 11. 2009 22:29)
- Ondřej Mirtes
- Člen | 1536
Pokud chceš, aby si systém to ID pamatoval přes všechny Presentery, stačí ten persistentní parametr definovat v BasePresenteru.
Pokud chceš nějaké jiné chování, zkus se víc rozepsat.