Formulář s vlastní template

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ondraondra81
Člen | 82
+
0
-

Ahoj,

mám vytvořený formulář

use \Nette\Application\UI\Form;
use \Nette\Forms\Controls;

class PoptavkaFormControl extends \Nette\Object
{

    public function create()
    {
        $form = new Form();
        $form->addGroup('Poptávkový formůlař');
   	//........kod
	return $form;
    }

}

v Presenteru pak volam

public function createComponentPoptavkaForm()
   {
       return $this->poptavkaFormControl->create();
   }

Chtěl bych ale pro ten formulář definovat jeho vlastní šablonu latte oddělenou od šablony presenetru, ale tak nějak nevím jak.

David Matějka
Moderator | 6445
+
0
-

nejlepe takto: https://doc.nette.org/…s/form-reuse#…
(napises si do ty komponenty render metodu jako ve standardni komponente)

Tomáš Votruba
Moderator | 1114
+
0
-

Ahoj, komponentu lépe vytvoříš pomocí Generovaných továrniček. Pak budeš moci v metodě render přidat vlastní latte soubor, kde můžeš formulář vypsat.

Případně také koukni na toto čerstvé téma

Šaman
Člen | 2666
+
+1
-

Funkční ukázku najdeš tady. Obsah traity patři do presenteru. A co configu musíš přidat tenhle řádek.

Ale teď víc používám CSS Bootstrap a zase myšlenku formulářů v komponentě opouštím. Sice je to fajn a na velké jednorázové formuláře bych to použil stále, ale kvůli drobným odlišnostem při vykreslování teď formuláře vytvářím v továrničce jako čistý Form a vykreslováni zařizuje šablona presenteru, nebo komponenty, do které ten formulář vložím. Nejčastěji měním třídu ajax a styl vykreslení tlačítek (někde nejsou vůbec, jinde jsou přes pod celou šířkou formuláře).