Jak renderovat FormControl pomocí šablony?
- akadlec
- Člen | 1326
Formulář si renderuju ručně pomocí jednotlivých maker {input} {label}
atd. To je vše ok.
Vytvořil jsem si nový FormControl abych mohl ve formuláři vytvářet
specifická políčka, třeba jako Davidem zmíněný DateInput
Vše je ok, jenže onen DateInput má tvar jak se vyrenderuje dán přímo
v sobě pomocí Nette\Utils\Html což je sice pěkné, ale je to dáno natvrdo.
Nedalo by se toto nahradit načtením lattéčka? Abych mohl určit jaká
šablona se použije? Protože na frontu to chci renderovat pomocí bootstrapu a
v backendu zase pomocí UIkitu apod.
- LeonardoCA
- Člen | 296
Urcite by se dalo i pomoci template, ale predpokladam, ze u formularovych prvku je hlavnim duvodem proc se standartne pouziva Nette\Utils\Html, aby se dalo pracovat s getControlPrototype() a bylo mozno dodatacne v pripade potreby jednoduse pridavat prvku class, apod.
- akadlec
- Člen | 1326
Primárně mě jde o to vytvořit si formulářový prvek který bude nezávislý na aktuální šabloně a budu jej moct použít na vícero místech aniž bych musel vše znova dokola psát a taky měl možnost jednoduše tu šablonu změnit.
Např:
<form n:name="mujForm">
{input customizovanyInput class => 'nejaka css trida'}
</form>
No a ten input by použil předem definovanou šablonu:
<div class="neco">
<a href="#">Hodnota policka</a>
<input type="text" name="customizovanyInput" value="Hodnota policka" class="js-hidden" />
</div>
- LeonardoCA
- Člen | 296
Ja si myslim, ze to nebude vadit nicemu, poznas :) (jedine kdyby jich bylo hodne na jedne strance, tak bys to mozna poznal na rychlosti renderovani)
- Zax
- Člen | 370
Myslím, že hledáš tohle, což by snad mělo formulářovému prvku dodat funkčnost z UI\Control, včetně šablon. Nemám vyzkoušené, jenom jsem na to nedávno někde narazil a zůstalo mi to v hlavě ;-)
EDIT: kruci, já si na tyhle „otázky“ ala stack overflow nemůžu zvyknout.. jsem to měl napsat do toho pole dolů místo toho, abych klikal na „komentovat“ :-(
Editoval Zax (9. 1. 2015 16:33)
- akadlec
- Člen | 1326
Takže jsem se to pokusil dát nějak dohromady a hodit na to na github jako extension. Zatím mě to funguje tak jak chci. Bylo by fajn kdyby si našel někdo ze zdejších guru čas a koukl na to zda je to ok, či je tam nějaká prasárna ;)
No a když už sem to teda tak nějak dal dohromady tak je to i vedle v jednom form controlu
Editoval akadlec (11. 1. 2015 11:10)
- akadlec
- Člen | 1326
@matej21 hele prosímtě neporadil by jsi jak čistě pořešit tuhle část kde se denifuje temp složka pro latte?
- David Matějka
- Moderator | 6445
@akadlec tezce :)
asi bych Latte\Engine misto takhle
vytvarel zhruba:
$presenter = $this->lookup('Nette\Application\UI\Presenter');
$factory = $presenter->getContext()->getByType('Nette\Bridges\ApplicationLatte\ILatteFactory');
$engine = $factory->create();
Sice to neni moc cisty, ale zadny jiny funkcni (a automaticke) reseni me nenapada…