Nové prvky pro vaše formuláře: datum, čas, barvy a čísla

před 12 měsíci od David Grudl  

Formuláře v Nette přináší do svého arzenálu nové interaktivní prvky, které usnadňují práci s datem, časem, barvami a desetinnými čísly.

Datum a čas

Zbavme se závislosti na JavaScriptových date/time pickerech. Současné prohlížeče již nabízejí tuto funkcionalitu nativně a bez chyb. Nette proto přichází s jejich podporou včetně plnohodnotné validace na straně klienta i serveru. S novými metodami addDate(), addTime() a addDateTime() můžete nyní jednoduše přidat elementy pro zadávání časových údajů do vašich formulářů:

$form->addDate('birthday', 'Datum narození:');
$form->addTime('alarm', 'Čas buzení:');
$form->addDateTime('meeting', 'Datum a čas schůzky:');

Každý z těchto prvků vrací po odeslání objekt DateTimeImmutable. Umožňuje také snadné nastavení minimálního a maximálního data/času a možnost zadávat i sekundy:

$form->addTime('detailedTime', 'Přesný čas:', withSeconds: true)
	->addRule($form::Min, 'Nejvýše hodinu zpátky', new DateTime('-1 hours'));

Svět plný barev

Stojíte před úkolem nechat uživatele vybrat barvu? Díky nové metodě addColor() výběr barvy bude hračka:

$form->addColor('favoriteColor', 'Oblíbená barva:');

Hodnotu vrací v hexadecimálním formátu #rrggbb. Mimochodem, s tímto formátem umí nově pracovat i třída Image:

$image = Image::fromBlank(100, 200, ImageColor::hex('#3C8ED7'));

Přesnost desetinných míst

Pro aplikace, kde každé desetinné místo má svůj význam, je tu addFloat(). Tento prvek umožňuje uživatelům zadávat desetinná čísla, opět s validací na straně klienta i serveru:

$form->addFloat('price', 'Cena:')
     ->setRequired();

Dokumentace vám poradí, jak nastavit prvek tak, aby akceptoval jako oddělovač desetinných míst jak tečku, tak i čárku.

Tyto novinky v Nette Forms jsou tu proto, aby práce s formuláři byla pro vás zase o něco příjemnější. Happy coding!

Komentáře

  1. Super, konečně se zbavím tohoto:
    $form->addText(‚date‘, ‚Datum a čas‘)->setHtmlAttribute(‚type‘, ‚datetime-local‘);
    a při editaci
    $defaults[‚date‘] = $defaults[‚date‘]->format(‚Y-m-d‘);

    před 12 měsíci
  2. Vyzkoušel jsem a splňuje všechny očekávání. Profesionálně provedeno.

    před 11 měsíci
  3. Super, tohle mi chybělo!!!! Děkuji za skvělou práci.

    před 11 měsíci
  4. Parada! Zrovna jsem chtel tuhle vec (datum) hledat do dokumentace a vidim, ze sviti novinka v blogu… ok, nejprve kouknu do blogu a… Zrovna se tam resi presne to, co jsem chtel jit hledat 🙂

    před 11 měsíci
  5. Tohle vypadá super!

    před 11 měsíci

Chcete-li odeslat komentář, přihlaste se