Možná blbý nápad na makro {form} a ulehčení manuálního renderování
- Ondřej Mirtes
- Člen | 1536
Asi by se dalo diskutovat nad syntaxí (mezery místo pomlček a proházení těch klíčových slov), ale jinak to není špatný nápad :)
- Honza Marek
- Člen | 1664
Taky se mi to líbí. V současné době mi nejvíc vadí, že při manuálním renderování si musím někde form přiřadit do proměnné, abych mohl renderovat jeho jednotlivé prvky.
- David Grudl
- Nette Core | 8249
Obecně, makra nepodporují zatím tyto typy konstrukcí:
$presenter['loginForm']->getParamId('xx')
$presenter['loginForm']['username']->label nebo control
$presenter['loginForm']['username']->getLabel('own label')
$presenter['loginForm']->errors
nějakou pěknou syntax zvažuju, ale klíčem je makro
{control ...}
, tj. nemohou být vázány pouze na formuláře.
Takže třeba:
{control loginForm-username label}
{control loginForm-username htmlId}
{control loginForm errors}
- Panda
- Člen | 569
Některé věci se vůbec nemusí tak komplikovat. Stačí přidat pár
funkcí do Form
u a FormControl
u:
A v šabloně si pak vesele mohu používat makra v následujícím stylu:
Nette je prostě připravené na vše!
Renderování jednotlivých vlastností se ale bude muset samozřejmě nějak dořešit…
// Doplnění:
Teď mi došlo, že ty extension metody u Form
u jsou vlastně
zbytečné… Může se použít toto:
Editoval Panda (17. 2. 2010 8:09)
- iguana007
- Člen | 970
Kdyby se jakkoli upravovala mechanika manuálního renderu formulářů,
velmi bych (myslím, že nejen já) uvítal možnost zobrazit error pro
konkretní prvek na místě, kde se mi to hodí. Resp. mít i možnost
nadefinovat, jak takový error bude vypadat.
Ale zároveň bych ponechal volbu zobrazit všechny errory na
jednom místě.
- srigi
- Nette Blogger | 558
iguana007 napsal(a):
Kdyby se jakkoli upravovala mechanika manuálního renderu formulářů, velmi bych (myslím, že nejen já) uvítal možnost zobrazit error pro konkretní prvek na místě, kde se mi to hodí. Resp. mít i možnost nadefinovat, jak takový error bude vypadat.
Ale zároveň bych ponechal volbu zobrazit všechny errory na jednom místě.
+1 Na toto som bol zvyknuty zo Symfony – ten nad elementom formu (input, textarea) renderuje UL-LI zoznam „failov“. Pre koncoveho je to intuitivnejsie, ked vidi chybu pri inkriminovanom policku, ako niekde v vseobecnej oblasti.
- jasir
- Člen | 746
Co takhle makro {this}
:
U formulářových komponent:
V rámci bloku this je definována proměnná $thisControl
.
Ještě mě napadla možná modifikace maker {control}
a
{widget}
na bloková
a uvnitř přistupovat na nově definovaný $thisControl
přes
makro {this}
či přes nějaké tečkové makro – tečka
nahrazuje this
, tedy
nějak takto:
Editoval jasir (17. 2. 2010 22:09)