Získání query stringu persistentních parametrů komponenty
- jh
- Člen | 22
Zdravím,
jak můžu získat query string persistentních parametrů z komponenty ?
Dám příklad, na co to potřebuji.
Vytvořím si CrudPresenter, kde budou metody default, create, update, delete a
factorka na DataGrid.
DataGrid komponenta má jako potomka VisualPaginator komponentu od DG.
Jako reakce na default akci CrudPresenteru je rendering toho DataGridu, který
v render metodě vykresluje taky svůj paginátor.
DataGrid podle nějakých členských proměnných svého CrudPresenteru ví,
jaká data má načíst.
Takže vždycky jenom podědím CrudPresenter, nastavím nějaké vlastnosti a
zbytek je automatický.
Jeden záznam DataGridu jsou vždycky nějaké data a pak nějaké akce, jako
smazání záznamu nebo editace – tyhle akce vedou právě na ty další
metody CrudPresenteru.
actionDelete metoda CrudPresenteru přijímá id,maže záznam a
přesměrovává zase na default akci, aby se znova vykreslil DataGrid. Tady sem
ale narazil, protože nevím, jak nějak jednoduše vytáhnout z komponenty
její persistentní parametry, abych je přidal do těch odkazů na různé akce
presenteru.
Záznam totiž mažu na nějaké stránce a chci, aby se po redirectu DataGrid
vykreslil zpět na té stránce, což se ale nevykreslí, protože
VisualPaginator si svoji stránku určuje tím, že si tahá z url
persistentní parametr „page“, který v těch odkazech na akce
CrudPresenteru není, protože ty odkazy musím generovat normálně link
metodou presenteru a ta nezahrnuje persistentní parametry svých komponent.
Vlastně sem měl navíc pocit, že když jsem pročítal tutoriály, tak
u persistentních parametrů bylo, že se automaticky udržují v url, přitom
v paginator_template.phtml od DG je
<?php
<a href="{link this, 'page' => $paginator->page - 1}">« Previous</a>
?>
Takže to moc nevypadá na nic automatického ne?
- jh
- Člen | 22
22 napsal(a):
$this->getParam('name'); //eventuelně $this->getParams('<component>-page');
Myslel jsem spíš něco, kde bych nemusel přesně vědět to jméno
komponenty nebo parametru, něco jako
$control->getPersistentParams nebo tak, co by automaticky prošlo ten strom
komponent a sestavilo jak kliče, tak hodnoty.
- jh
- Člen | 22
22 napsal(a):
$control->getPersistentParams
a tohle nestačí?
To vrací pole jmen těch persistentních parametrů, takže třeba
„page“ v případě toho paginátoru.
Myslel jsem, jestli třeba není nějaká metoda na generování odkazu nebo
něco, co by zahrnulo persistentní parametry ze všech připojených
komponent.
Budu mít presenter, kde bude připojenej dataGrid, který ma potomka
paginátor a ten má persistentní parametr page.
$presenter->linkWithPersistentParams(‚edit‘); //
presenter/edit/?dataGrid-visualPaginator-page=1
To si budu muset ale napsat asi sám.