Vlastní FormControl se šablonou, CSS a JavaScriptem

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

Proč FormControl dědí od Component a né od Control když je to vykreslitelná komponenta? Když si podědím od FormControl vlastní formulářový prvek, nemůžu potom používat parent::createTemplate() (teda můžu, ale musím si to napsat sám :-)).

A pokud mám vlastní FormControl se šablonou používající CSS a JS, jak nejlépe uvést tyto soubory do hlavičky v layoutu a to pouze jednou i při použití více controlů na stránce? Registruji si CSS i JS soubory přes vlastní třídu HeaderFiles::add( $file ) a to potom v layoutu vykreslím, ale mám tušení, že je na to už něco hotového.

Patrik Votoček
Člen | 2221
+
0
-

FormControl od Control nedědí protože samotný FormControl není vykreslitelný. O vykreslení se stará až renderer Nette\Forms\ConventionalRenderer

Milo
Nette Core | 1283
+
0
-

Vykreslit se nedá jen proto, že to je abstraktní třída, ale v podstatě je to <input> element. Všechny ostatní dědicové CheckBox, RadioList, … ale už vykreslit lze.

Proč se tedy o ně stará Renderer, když by se mohli vykreslovat samy? Když to vezmu od začátku… jak teda nejlépe vytvořit formulářový prvek s vlastní šablonou, CSS a JS?

Editoval Milo (11. 8. 2010 11:04)