bootstrap3 pro všechny formuláře

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

Ahoj,

existuje nějaký způsob jak udělat to, že se všechny formuláře budou stylovat bootsrapem3?

Mesiah
Člen | 240
+
0
-

Btw hezká implementace (aspoň mě se líbí) je v new addon-portálu – sice nejde o bootstrap, ale když renderer nastavíš podle postu z php fashion, tak dosáhneš čeho chceš…

Editoval Mesiah (24. 1. 2014 15:18)

batko
Člen | 219
+
0
-

hrach napsal(a):

https://github.com/…Renderer.php

a jak to zapnu aby mě to fungovalo na všechny formuláře v celé aplikaci?

mesour
Nette Blogger | 236
+
0
-

Jednoduše, v nějakém base presenteru uděláš například metodu form(), ve které budeš mít například:

protected function form() {
        $form = new \Nette\Application\UI\Form;

        $form->setTranslator($this->getTranslator());

        $form->setRenderer(new \Nette\Forms\Rendering\BootstrapFormRenderer);

        $form->getElementPrototype()
                ->class('form-horizontal page-form')
                ->role('form');

        return $form;
}

Pak už jen jednoduše použiješ:

protected function createComponentUserForm() {
	$form = $this->form();

	$form->addText("login", 'Login');
	// ...

	return $form;
}
batko
Člen | 219
+
0
-

děkuji moc, funguje

batko
Člen | 219
+
0
-

ahoj, mam ještě dotaz,

potřeboval bych jeden <input> obalit do kodu, například <div> <mujinput> </div>.

jde to nějak rozumně nastavit již v presenteru, abych nemusel formulář o 30 položkách kreslit ručně?

Děkuji

kloban
Člen | 123
+
0
-

mesour napsal(a):

Jednoduše, v nějakém base presenteru uděláš například metodu form(), ve které budeš mít například:

protected function form() {
        $form = new \Nette\Application\UI\Form;

        $form->setTranslator($this->getTranslator());

        $form->setRenderer(new \Nette\Forms\Rendering\BootstrapFormRenderer);

        $form->getElementPrototype()
                ->class('form-horizontal page-form')
                ->role('form');

        return $form;
}

Pak už jen jednoduše použiješ:

protected function createComponentUserForm() {
	$form = $this->form();

	$form->addText("login", 'Login');
	// ...

	return $form;
}

Mě to bohužel nefunguje. Laděnka mi píše: Call to undefined method App\Presenters\SluzbaPresenter::getTranslator(). Díky za případné rady. Jinak nemám formulářů moc, tak to kdyžtak nebudu řešit hromadně…

sKopheK
Člen | 207
+
0
-

A používáš vůbec translator? Je nastavený v configu? Pokud ne, tak ten řádek s setTranslator() prostě smaž.