Formulář jako komponenta s vlastní šablonou – ukázka

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
medhi
Generous Backer | 255
+
+6
-

Ahoj,

protože nejnovější trend a best practice je vytvářet formuláře (ty co chcete použít vícekrát) jako komponenty, zkusil jsem to také. Potřeboval jsem ale, aby formulář měl vlastní šablonu. Bohužel najít kompletní návod jak na to byla detektivní práce (díky za radt @matej21@FilipProcházka).

Jednotlivé útržky lze najít v těchto jinak skvělých návodech, které doporučuji nastudovat:

https://doc.nette.org/…s/form-reuse (pomohlo asi nejvíce, ale přesto dost stručné, chybí tam alespoň práce se šablonou)

https://doc.nette.org/…tion/factory

https://doc.nette.org/…/smartobject#…

Udělal jsem tedy kompletní ukázku, jak na to. Je pokud možno co nejpodrobněji komentována. Ne vše z ní musí být jasné, proto se prosím ptejte co jasné není v komentářích pod ní na Githubu, pokusím se ji vylepšit.

https://gist.github.com/…9897ed1851a9

castamir
Člen | 629
+
0
-

Pěkná práce.

Osobně to řeším ještě tak, že přidám formuláři renderer a vykreslím ho bez šablony za použití render metody z komponenty:

public function render() {
	echo $this['form'];
}

co se komentářů týče, myslím, že ti tam chybí ještě pár překladů do angličtiny (u rozhraní a konfigurace), ale to je jen na okraj ;)

looky
Člen | 99
+
0
-

Díky! Není nic lepšího než pěkná, okomentovaná, a hlavně úplná ukázka.

@castamir -ovu variantu používám také, pokud zrovna nepotřebuju šablonu.

medhi
Generous Backer | 255
+
0
-

Díky, je to dopřeloženo.