Formulář a flashmessage – přes presenter?

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

Zdravím, měl bych takový dotaz ohledně třídy Nette\Application\UI\Form, resp. by mě zajímalo proč nedědí z Nette\Application\UI\Control, protože takhle nemůžu ve třídě dědící z formuláře zavolat $this->flashmesage(‚Děkujeme za očistu‘); třebas ale musím na to jít přes presenter $this->presenter->flashmessage(‚Děkujeme za očistu‘); potažmo proč se flashmessage nepřesune trošku onde.

mkoubik
Člen | 728
+
0
-

Form nedědí Control, protože nemá render(). Renderuje se pomocí rendereru.

Jan Endel
Člen | 1016
+
0
-

Jo ok, to mi dává smysl, ale stejně vnitřně toužím po flashmessages u Formu.

22
Člen | 1478
+
0
-

tak přece $this->presenter->flashMessage(..) ne?

Elijen
Člen | 171
+
0
-

22 napsal(a):

tak přece $this->presenter->flashMessage(..) ne?

To se pak nezobrazi primo u komponenty. Nebylo by spatne, kdyby se i zprava o uspechu zobrazila primo u formulare (hlavne u AJAXoveho odesilani).

mkoubik
Člen | 728
+
0
-

Tak si udělej komponentu, a do ní si dej ten formulář (createComponentForm()), ale budeš si k tomu muset napsat šablonu, kde vykreslíš flash messages a ten formulář.

Elijen
Člen | 171
+
0
-

To mě přívádí zpět k původní otázce: Proč Form nedědí z Control? To, že nemá render() není pravda.

Jan Endel
Člen | 1016
+
0
-

22: ano, to jsem zmínil už na začátku, ale prostě se mi to nelíbí, přeci formulář by měla být komponenta jako každá jiná, tedy i s flashmessage.

Ale jak říká mkoubik, přes vlastní komponentu by to šlo, jen mi to trošku přijde jako škrábání pravou nohou za levým uchem.

22
Člen | 1478
+
0
-

popravdě řečeno, taky jsem se napřed divil, ale asi je to kvůli tomu, aby se daly formuláře používat nezávisle na frameworku imho

Jan Endel
Člen | 1016
+
0
-

Ano na to je Nette\Forms\Form ten ať je na Nette nezávislý, ale v Nette\Application\UI\Form by přeci klidně mohl být.

Editoval pilec (1. 2. 2012 16:57)