Letní akce PHP týden
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!

Bootstrap 4 formuláře pro Nette

Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem.
Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Dělal jsem jsem několik webů v Nette a všude jsem používal tu samou šablonu, kde jsem si udělal jakousi primitivní podporu pro Bootstrap 4 formuláře. Po čase jsem si řekl, proč to neextrahovat a dát i ostatním k dispozici jako funkční knihovnu. Tak se zrodila tato knihovna.

Teď už je to víc než jen upravené původní Nette/Forms, např. renderer je kompletně nový.

Knihovna se instaluje přes composer:

composer require czubehead/bootstrap-4-forms

Pokud chcete z nějakého důvodu použít něco jiného, můžete si také stáhnout zdrojový kód zazipovaný pod tímto článkem. U toho ale nemáte garanci nejnovější verze, popř. použijte release na GitHubu.

Funkce

  • Validní Bootstrap 4 kontrolky a renderer - protože jsou upravené i kontrolky funguje korektně manuální renderování formuláře
  • Všechny módy Bootstrap formulářů - vertikální, side-by-side, inline
  • Nová kontrolka DateTimeInput - textové pole pro datum s rozšířenou validací
  • Placeholdery pro textové pole
  • Všechno, co umí klasické Nette forms, samozřejmě
  • Statické typování - tedy v rámci PHP 5.6
  • Validace kontrolek - po neúspěšném odeslání se zeleně rozsvítí správná pole a červeně ta s chybami

Ukázky

Je poměrně zbytečné sem dávat ukázky kódu, jen bych překládal README, proto se prosím podívejte na Github


Galerie

Program byl vytvořen v roce 2018.

 

Stáhnout

Staženo 40x (30.27 kB)
Aplikace je včetně zdrojových kódů v jazyce PHP

 

 

Program pro vás napsal Petr Čech
Avatar
Jak se ti líbí článek?
1 hlasů
Autor se věnuje především desktopovým aplikacím v C#, okrajově Javě na Legu NXT.
Všechny články v sekci
Zdrojákoviště pro Nette framework
Aktivity (6)

 

 

Komentáře
Zobrazit starší komentáře (1)

Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:19.5.2018 19:43

Měl sem jen nějak špatně naimportěnej bootstrap :)

 
Odpovědět 19.5.2018 19:43
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:19.5.2018 20:23

Ale mám jiný problém radio a checkboxy se mi neodesílají :/ respektive jsou null

 
Odpovědět 19.5.2018 20:23
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Ondřej Pech
Petr Čech:19.5.2018 23:22

To je nadmíru zvláštní, mně funguje normálně. Jak sestavuješ ten formulář? Podívám se na to.

Odpovědět 19.5.2018 23:22
the cake is a lie
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:20.5.2018 9:55

Normálně přímo v presenteru:

protected function createComponentEditGalleryForm()
{
    $form = new BootstrapForm;
    $form->renderMode = RenderMode::SideBySideMode;

    $formGallery = $form->addContainer('gallery');

    $formGallery->addText('name', 'Název galerie: ')
        ->setRequired(true);

    $formGallery->addTextArea('description', 'Popis galerie');

    $client_id = [0 => 'Žádný klient'];
    $formGallery->addSelect('client_id', 'Vyberete klienta:', $client_id);

    $category = [
        'weeding' => 'Svatba',
        'portrait' => 'Portrét',
        'report' => 'Reportáž',
    ];
    $formGallery->addSelect('category', 'Vyberte kategorii: ', $category);

    $order_id = [0 => 'Žádná objednávka'];
    $formGallery->addSelect('order_id', 'Vyberte zakázku: ', $order_id);

    $formGallery->addRadioList('visible', 'Zobrazení:', ['0' => 'Skrýt', '1' => 'Zobrazit']);

    $formaddPhoto = $form->addContainer('addPhotos');
    $formaddPhoto->addCheckbox('mark', ' Vložit vodoznak');
    $formaddPhoto->addCheckbox('sharpen', ' Doostřit fotografie');

    $formaddPhoto->addSubmit('addGallery', 'Uložit galerii');
    $form->onSuccess[] = [$this, 'editGalleryFormSucceeded'];

    return $form;
}

Vykreslený jako HTML je dobře, a když oddělám classy (klasický checkbox) tak funguje

Editováno 20.5.2018 9:57
 
Odpovědět 20.5.2018 9:55
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:20.5.2018 10:02

Po odeslání Tracy ukazuje toto u radia NULL u checkboxů false:

Nette\Utils\ArrayHash #c805
gallery => Nette\Utils\ArrayHash #8761
        name => "Portfolio (Portréty) test" (26)
        description => "Galerie pro nahrávání portrétních fotek do portfolia" (57)
        client_id => 0
        category => "portrait" (8)
        order_id => 0
        visible => null
addPhotos => Nette\Utils\ArrayHash #8f72
        mark => false
        sharpen => false
 
Odpovědět 20.5.2018 10:02
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Ondřej Pech
Petr Čech:20.5.2018 11:22

Mno, tak to je rozbité a budu to muset opravit, blbne to, když jsou tam kontejnery. Tak prozatím bych doporučil to prostě předělat to na formulář bez kontejnerů.
Máš ale štěstí, že tuhle knihovnu chci prezentovat v rámci semestrálky, takže oprava by měla přijít brzy.

Odpovědět 20.5.2018 11:22
the cake is a lie
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:20.5.2018 11:25

To by bylo super :) je to řešení které vypadá asi nejlépe, z těch co sem našel. Oukej, zkusím to zatím bez kontejnerů :)

 
Odpovědět  +1 20.5.2018 11:25
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Ondřej Pech
Petr Čech:20.5.2018 11:26

Díky. Ono je to hlavně jediné řešení, co to dělá pořádně a jen si nehraje s defaultním rendererem.

Odpovědět 20.5.2018 11:26
the cake is a lie
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Ondřej Pech
Petr Čech:20.5.2018 11:48

Je to opraveno: https://github.com/…1be81dcf1bdd
Ale úplně se mi kvůli tomu nechce vydávat novou verzi, takže si můžeš počkat na novou verzi, která vyjde někdy v průběhu 14 dní, nebo prozatím můžeš composeru říct, ať použije master branch (nedoporučeno, ačkoliv teď je tam stabilní kód)

Odpovědět 20.5.2018 11:48
the cake is a lie
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:20.5.2018 11:49

Je to jen na můj osobní web tak to rovnou vyzkouším :) Díky ;)

 
Odpovědět  +1 20.5.2018 11:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 11. Zobrazit vše