Halloweenská akce! Na stránce s dobitím bodů zadej dole kód STRASIDELNYCH20 a získej porci +20% bodů zdarma!
Akce končí 31.10. o půlnoci.

Bootstrap 4 formuláře pro Nette

PHP Nette Framework Zdrojákoviště Bootstrap 4 formuláře pro Nette

ONEbit hosting 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 22x (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.
Miniatura
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. května 19:43

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

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

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

 
Odpovědět 19. května 20:23
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Ondřej Pech
Petr Čech:19. května 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. května 23:22
the cake is a lie
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:20. května 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. května 9:57
 
Odpovědět 20. května 9:55
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:20. května 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. května 10:02
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Ondřej Pech
Petr Čech:20. května 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. května 11:22
the cake is a lie
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:20. května 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. května 11:25
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Ondřej Pech
Petr Čech:20. května 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. května 11:26
the cake is a lie
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Ondřej Pech
Petr Čech:20. května 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. května 11:48
the cake is a lie
Avatar
Ondřej Pech
Člen
Avatar
Ondřej Pech:20. května 11:49

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

 
Odpovědět  +1 20. května 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