Komponenty s více nastaveními – do komponenty nebo továrničky?
- Jiří Nápravník
- Člen | 710
Četl jsem článek, jak nejlépe a formuláře a líbí se mi ta metoda s tím UI/Control + generovanou továrničkou.
A teď jsem přemýšlel, jestli není správné takhle řešit i komponentu, která má spoustu různých nastavení. Typicky třeba grid, kde se přidává x sloupců, filtry atd. Zatím to dělám, že to mám v presenteru v továrničce, ale nebylo by taky proto správnější zvolit podobný postup a udělat to celé jako komponentu. Presenter by pak nebyl tak velká třída. Nebo je lepší to něchat v presenteru?
Editoval Jiří Nápravník (29. 11. 2013 20:07)
- Jan Suchánek
- Člen | 404
@Jiří Nápravník: Myslíš dát gridu (komponentě) závislosti a předat ho presenterům pomocí továrničky a případně si upravit funkčnost v konkrétním action? To je stejné jako s formuláři ne?
- Jiří Nápravník
- Člen | 710
Myslím v podstatě tohle Jen si tam místo formuláře představ, že tam takhle nadefinuju a naplním celý grid. A presenteru předám tu generovanou továrničku a v presenteru bych dal pak pouze něco jako:
protected function createComponentGrid(){
return $this->gridFactory->create();
}
- Jan Suchánek
- Člen | 404
@Jiří Nápravník: a pokud budeš chtít třeba gridu předat nějaký parametr (myslim z jiné komponenty, z parametrů presenteru, např.: id nějaké kategorie) tak přez setr gridu a kde je to rozumné jen v action a handle?
Editoval jenicek (29. 11. 2013 22:51)
- Jiří Nápravník
- Člen | 710
@jenicek stejně jako u formulářu, v action vytáhnu hodím do privátní property presenteru a továrničce v create() to předám
- Jan Suchánek
- Člen | 404
@Jiří Nápravník: tzn. předávaš až v create ok a případně privátní propery presenteru měníš v handle?
Proč se ptám, mám grid, vlastní. A chtěl bych při používání Ajaxu měnit renderer. Dělám dobře když ho měním pomocí signálu handle. Když použiju zvláštní action, při odesílání formu ajaxem jsem se nevracel na správný view a neodesílali se data (form se zpropaguje až v šabloně ne?).
Budu konkrétnější, pro názornost:
- mám view s nějakým vlastním gridem
- kliknu na link „upravit“, třeba nějaký článek → nepodstatné
(dotaz je proveden ajaxem a nedochází k přechodu na jinou stránku)
3. v snipetech vrátím pro zobrazení pouze formulář (ajaxem form
ukládám)
4. při chybě invaliduji jen formulářový snipet, při uložení
formulářový snipet odstraním a invaliduji grid.
Měl bych tedy mít možnost ho zpracovat, ale zpracuje se jen když je v šabloně uveden).
Chápu, mohu použít jiný hotový grid, ale tam se takové blbosti
neřeší a většinou dochází k přesměrováním.
A formulář v modálu to jsem moc nikde nevidel jen, když jsem si něco
napsal sám.
Formulář v modálu mi přijde vynikající řešní jen drobných malých a dorobných změn (například k editaci kategorií).
Ale možná píšu blbosti.
Editoval jenicek (30. 11. 2013 12:51)
- Jiří Nápravník
- Člen | 710
Nevím, tohle je hlavně trochu více off-topic, než na co jsem se ptal:-)
Já používám hotový grid, na handle dávám většinou jen mazání, a to mi pošle upravený grid jako snippet. Úpravu řeším v novém view bez ajaxu.