Formulářové pole s automatickou class
- j0hny
- Člen | 33
Dobrý den,
používám na tvorbu formulářů Nette. Pro pole s datumem používám (je to požadavek který musím splnit) js plugin pro bootstrap, který se stará o vyrenderování kalendáře pro výběr data (datepicker). Propojuje se s inputem pomocí class=„data-datepicker“ v šabloně.
Chtěl bych napsat rozšíření pro formuláře tak, aby se přidalo formulářové pole třeba takhle: $form->addDatum, což by automaticky vytvořilo input s touto třídou, bez zásahu v presenteru nebo šabloně.
Byl by někdo tak hodný a poradil mi jak na to? Mám na to časový limit a v Nette dělám krátce, takže si s tím nevím moc rady.
Díky moc za případné rady!
- j0hny
- Člen | 33
To jsem měl přesně na mysli, díky za odpověď!
EDIT
Ještě mě napadlo, že bych mohl udělat automatický převod formátu data. Datepicker mi datum do inputu zapíše v českém (j.n.Y) formátu a já ho chci přepsat do formátu pro db (Y-m-d). Je možné tohoto docílit přímo ve formulářové komponentě, ještě před přesměrováním na zpracování? (tj. něco jako setValues, volané po zmáčknutí na send)?
Editoval j0hny (16. 5. 2013 9:13)
- j0hny
- Člen | 33
Tak to je věčná škoda :-)
Každopádně si myslím že je to dobrý námět do budoucích verzí. Pro datum nebo třeba desetiné číslo (čárka místo tečky), které máme v naší zemičce v jiném formátu, by to bylo celkem dobré zjednodušení pro celou aplikaci. (daly by se samozřejmě vymyslet i další situace, kde by se to dalo použít)
- Vojtěch Dobeš
- Gold Partner | 1316
Jaké setFilter()
? K podobným požadavkům slouží
naimplementování si vlastní formulářové komponenty.
- j0hny
- Člen | 33
Tak se mi podařilo implementovat podobnout funkčnost pomocí zděděné třídy Form – upravil jsem metodu getValues, která, pokud předaná value odpovídá formátu j.n.Y, upraví datum na Nette\DateTime… Problém už akorát je, že se takto kontrolují všechny pole a ne jen pole přidané pomocí addDatum…
Kdyby někdo měl nápad jak doladit to poslední, budu mu vděčen ;-)
Editoval j0hny (17. 5. 2013 7:32)