Rozdělení formuláře na části
- TOMeek
- Člen | 64
Ahoj,
chtěl bych se zeptat, zda jde formulář už v základu rozdělit na
části.
Potřeboval bych něco takového, ale nevím jak toho dousáhnout
{form form}
<div>
{form body}
</div>
<div>
{form buttons}
</div>
{/form}
S tím, že v BODY by se vykresililo vše krom tlačítek, která potřebuji vykreslovat do jiného DIVu. Prozatím jsem to měl řešené foreachem, který mi to vlastně manuálně vykresloval, ale problém nastane, když potřebuji dělat grupy a podobné vychytávky. Vím že něco takového umělo Kdyby/BootstrapFormRenderer. Mne tady nejde o BS3 vzhled (stačí ten co generuje Nette defaultně), jde mi o to rozdělení tlačítek zvlášt. A na to prostě nemůžu kápnout :-(. Předem díky za jakékoliv nasměrování.
- Filip Klimeš
- Nette Blogger | 156
Možná by Ti pomohli formulářové kontejnery. Více informací níže v kapitolce manuální vykreslování.
- TOMeek
- Člen | 64
Díky za rady. Nekonec jsem na to šel tak, že jsem si z původního formuláře odstranil tlačítka a vložil je do druhého. Poté oba vyrenderuju a tím můžu využít vestavěný generátor formulářů a nemusím vymýšlet nic svého. Nevím zda je to úplně nejlepší řešení, ale prozatím to funguje.
...
$buttons = new Nette\Application\UI\Form();
foreach($form->controls as $input) {
if($input instanceof Nette\Forms\Controls\Button) {
$buttons->addComponent(clone $input, $input->name);
$form->removeComponent($input);
}
}
$this->template->form= $form;
$this->template->buttons = $buttons;
...
A pak v šabloně
<div>
{$form->render("body")}
</div>
<div>
{$buttons->render("body")}
</div>