Manuální render formulářů: přidání class při použití makra {input}

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

Zdravím,
jednoduchá otázka: existuje snadnější řešení pro přidání třídy inputu v šabloně než v tomto příkladu?

{foreach $controls as $field}
	{var $name = $field->lookupPath('Nette\Forms\Form')}
	{input $name, class => "added-class ".$field->control->class}
{/foreach}

Aneb nebylo by vhodnější kdyby použití {input $name, class => "added-class"} třídu přidávalo, nikoliv měnilo?

enumag
Člen | 2118
+
0
-

Kdyby to tak bylo tak se do dvou měsíců objeví někdo kdo tu třídu potřebuje opravdu změnit a ne pouze přidat – což by nebylo možné vůbec, takto jsou alespoň nějak k dispozici obě možnosti.

Z tohoto důvodu –1. ;-)

Šaman
Člen | 2661
+
0
-

Teoreticky by bylo možné dopsat n:addClass, otázkou je jen četnost využití takového konstruktu. Jestli je to potřeba jednou za uherský rok, tak to IMHO do frameworku nepatří.

redhead
Člen | 1313
+
0
-

@Casper spíš se zeptám, proč to potřebuješ? Třídy, co se týkají stylu, by se měly nastavovat v šabloně. Pokud je to nějaká řídící třída, tak by se jí spíš líbilo v data- atributu, ne?

Casper
Člen | 253
+
0
-

Díky za odpovědi.

@redhead Používám formulář, který jednou vykresluji pomocí šablony, podruhe pomocí tradičního rendereru. V definici formu nastavuji určitému tlačítku třídu, která jej pak pomocí css skryje. V šabloně však potřebuji přidat třídu (obecně tlačítkům) kvůli rozdílnému css frameworku.