Chytrejsi form makra (FormMacros): n:form a {form X /}

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

TL;DR:: chci 2 featurky (implementace)
1/ n:form:

<form n:form="addNote" class="ajax">
  ...
</form>

2/ {form X /}

{form addNote class => "ajax" /}

Detailneji:

1/ n:form:
Radeji chci psat klasicke HTML a do nej pridavat minimum dalsiho jazyka. Jednak proto, ze HTML uz dobre umim a nechci premyslet, jak by se to dalo zapsat v latte. Druhak kvuli IDE, ktere HTML skvele rozumi a dokaze mi tam napovidat, dokaze to zparsovat atd.

Vhodne pokud chci napr pridat vice svych atributu:

<form n:form="addNote" class="ajax" onsubmit="$(this).somethingInJQuery( { blah: 'blah' } );" data-moje="XY">
  ...
</form>

mi prijde daleko rozumnejsi (intiutivnejsi, citelnejsi) nez

{form addNote class => 'ajax', onsubmit => "$(this).somethingInJQuery( { blah: 'blah' } );", ...}

Navic, kdyz tam mam nejake specialni znaky a nevim, zda to latte zparsuje spravne. U HTML to vim a nemusim nad tim vubec premyslet.

Druhak, IDE v drobeckove navigaci ukazuje, kde jsem, a muzu se tim pekne proklikavat. Ale {form ...} to nepochopi a v navigaci mi tedy chybi.

Summary: Drzet se HTML kde je to mozne.
Note:: Pokud chcete namitnout, ze to funguje, tak vezte, ze ne

2/ {form X /}
Pokud chci velice rychle vykreslit form, ale drobitek upraveny, tak chci udelat {form addNote class => 'ajax' /}. Pomoci makra control to nejde tak jednoduse, a treba zrovna celej form rucne kreslit nechci.

Filip Procházka
Moderator | 4668
+
0
-

Zde bych měl nápad, co se týče n:form. Protože Latte má těch informací o kontextu makra opravdu hodně, bych byl spíše pro magičtější makra. Konkrétně by třeba n:control mohlo mít dva handlery, kde jeden by fungoval pouze pro n: makro ve formuláři a druhý obecně jako teď. Navíc to vypadá malinko lépe, než <form n:form="">. Ale to je spíše jen k zamyšlení.

<form n:control="addNote">

Větší průser je, že makro {form} v současné implementaci neumí přijmout objekt, kdežto {control} ano. Což je velice otravné. Ještě párkrát to budu potřebovat a posílám pull (ještě mě to dostatečně nenaštvalo).

Tak mě napadá, že bych mohl splácat detailní článek, jak psát makra.

petr.pavel
Člen | 535
+
0
-

Tak mě napadá, že bych mohl splácat detailní článek, jak psát makra.

To bych určitě moc ocenil. +1

David Grudl
Nette Core | 8218
+
0
-

Jsem pro, kvůli tomu existuje n:input. Ale je pravda co píše HosipLan, že se to začíná trošku tříštit, takže by to chtělo možná nejprve rozmyslet.

juzna.cz
Člen | 248
+
0
-

HosipLan napsal(a):

… třeba n:control … vypadá malinko lépe, než <form n:form="">

Me prijde spise logicke a intuitivni, ze form vykresluju pomoci makra form. Navic se logicky paruje makra {form} s n:form (obe delaji to same; rucni kresleni formulare) a stejne tak {control} a n:control (vykresleni komponenty).

Jak logicky vysvetlis kdyz se logika zameni?

Větší průser je, že makro {form} v současné implementaci neumí přijmout objekt …

Jiz vyreseno