Zpracování formuláře na jiné stránce

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

Potřeboval bych zobrazit přihlašovací formulář ve více presenterech, konkrétně v PagePresenteru všude a v UserPresenteru v pohledu (view, jak to napsat česky?) login. Na formulář mám továrničku v BasePresenteru, v něm je taky loginFormSubmitted handler.

Pokud dojde k chybě při přihlašování (uživatel neexistuje nebo je špatné heslo), přidávám do formuláře chybu. Potřeboval bych ale, ale se ten formulář znovu zobrazil v UserPresenter v pohledu login (to je stránka, kde kromě formuláře není nic), protože nad formulářem v hlavičce stránky (v PagePresenter) to vypadá dost hrozně.

Máte někdo nějaký tip, jak na to?

lubomir
Člen | 3
+
0
-

No tak je to jednodušší, než jsem čekal, dvě hodiny si tady s tím člověk hraje a ono stačí něco takhle jednoduchého:

$form->setAction($this->link('User:login') . '?do=loginForm-submit');
timbulko
Člen | 85
+
0
-

No, toto mi nepríde ako zrovna najlepšie riešenie. V Nette by si nemal nad tvarom adresy v presenteri vôbec uvažovať a nie to ešte do nej dopĺňať „?do=…“.
Prečo si na prihlasovací formulár nevytvoríš komponentu? Potom si už len stačí hocikde do šablóny stačí vložiť napr. {control loginForm}.

lubomir
Člen | 3
+
0
-

Tohle zní taky zajímavě. Byl by nějaký odkaz na vysvětlení, co to vlastně je komponenta a jak se to napíše? Tohle totiž zatím tak trochu netuším (ani nevím, jak v komponentě vyřešit můj problém)…

Ondřej Mirtes
Člen | 1536
+
0
-

lubomir napsal(a):

Tohle zní taky zajímavě. Byl by nějaký odkaz na vysvětlení, co to vlastně je komponenta a jak se to napíše? Tohle totiž zatím tak trochu netuším (ani nevím, jak v komponentě vyřešit můj problém)…

https://doc.nette.org/cs/quickstart
https://doc.nette.org/…n/components