Prototypy formulářových controlů (jak použít šablonu místo objektu HTML)

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

Ahoj.

Řeším, zda je možné mít několik prototypů formulářů, mezi kterými by se dalo přepínat podle potřeby. Dále pak jestli je možné si prototypy navrhnout v šabloně, nikoliv v PHP pomocí třídy Html.

I. Několik prototypů formulářů, mezi kterými by se dalo přepínat podle potřeby.

Nemám teď na mysli manuální vykreslování, ale mít možnost definovat několik způsobů vykreslování jednotlivých polí a mít možnost mezi nimi přepínat. Požadavek vznikl u zákazníka, který má projekt s mnoha formuláři a při redesignu nechce upravovat všechny šablony formulářů.

Vypadá to, že stačí mít několik FormRendererů a ty nastavovat pomocí setRenderer(), dělám to dobře?

II. Je možné prototypy controlů navrhnout v šabloně, nikoliv v PHP pomocí třídy Html?

S tímhle jsem se dneska snažil taky experimentovat, ale čistě to nejde (metoda getControlPrototype() je final) a i po přepsání této metody v Nette se mi nepodařilo nějak zařídit, aby se prototyp načítal z šablony. Vypadá to, že ta třída Html je ve formulářích zadrátovaná dost natvrdo. Máte s tím někdo zkušenosti, pls?

III.

Narazili jsme ještě na jeden problém, který nevím ja s Nette formuláři řešit: Je možné připravit si část formuláře někde externě (dejme tomu formset Osobní údaje) a tu pak vkládat jako celek do dalších formulářů?


Díky za každou odpověď. I pokud napíšete že to nejde, aspoň budu vědět na čem jsem. :)

hAssassin
Člen | 293
+
0
-

s bodem III. by ti mohla pomoc Kompozice, aneb viz tady