Manual render a krajsi zapis sablony
- newPOPE
- Člen | 648
Ahoj, chcem sa spytat ci neexistuje nejaky nice zapis takehoto kodu sablony?
<?php
<div class="login_div" n:if="!$user">
{control loginForm begin}
{$control['loginForm']['login']->control}
{$control['loginForm']['send']->control}
{control loginForm end}
</div>
?>
ide mi tieto zapisy
<?php
{$control['loginForm']['login']->control}
{$control['loginForm']['send']->control}
?>
- Honza Marek
- Člen | 1664
Neexistuje. Jedině si můžeš do šablony přiřadit formulář v proměnné.
$this->template->loginForm = $this["loginForm"];
<div class="login_div" n:if="!$user">
{control $loginForm begin}
{$loginForm['login']->control}
{$loginForm['send']->control}
{control $loginForm end}
</div>
Ale to asi není to, co jsi chtěl.
- newPOPE
- Člen | 648
No mas pravdu na to som nemyslel.
zaujimave je ze
<?php
{control loginForm begin}
?>
berie ale to ostatne nie. Skusal som rozne zapisy po tom co som na skoleni videl tie kratke zapisy v sablonach :-) tak som predpokladal nieco taketo
<?php
{control loginForm->login->control}
?>
popripade nieco podobne
- Honza Marek
- Člen | 1664
Pěkný by bylo
{form jmenoFormu}
<p>{formLabel input} {formControl input}</p>
{/form}
Což musí bejt (vzhledem k faktu, že formuláře nejdou zanořovat) naprosto triviální na implementaci. Bohužel neumim vyrábět vlastní makra pro Latte filtr, v dokumentaci toho moc neni a v kódu bych se musel dlouho rozhlížet.
- Mikulas Dite
- Člen | 756
Super nápad!
Vlastní makro je snadný – v prepare metodě filtrů (ale teď z hlavy
nevim jak se jmenuje :) stačí něco na způsob
$template->registerFilter($lf = new LatteFilter);
$lf->handler->macros['foo'] = '<?php echo bar(%:macroModifiers%); ?>';
Jestli si na to zítra chvilku najdu, tak to napíšu…
Editoval Mikulas Dite (28. 3. 2010 23:16)
- Honza Marek
- Člen | 1664
pekelnik: control ne, to už je zabraný…
Jinak přátelé… Naprogramoval jsem to.
- Honza Marek
- Člen | 1664
Dalo by se s tim teda ještě trochu pohrát. Nefunguje syntax
{form nazev}
, musí se to dát včetně řetězce jako
{form 'nazev'}
. Taky by bylo cool zprovoznit tagy
<n:form ...>
, <n:formControl ...>
apod.,
který mi taky nefungujou. Tak kdyby se někomu chtělo, tak to forkněte a
dodělejte.
- Mikulas Dite
- Člen | 756
pekelnik napsal(a):
co takhle?
Mě se to líbí, mažu nette control (zůstává widget), tohle je mnohem kratší.
Honza: Thumbs up!
- redhead
- Člen | 1313
Honza Marek napsal(a):
Taky by bylo cool zprovoznit tagy
<n:form ...>
,<n:formControl ...>
apod., který mi taky nefungujou.
O něco takovýho jsem se pokoušel už kdysi dávno. Bylo to dělaný přes vlastní filter (a trochu složitě názvem xforms:…) ale nějak to zašlo. A nebylo to moc cool. Viz:
https://forum.nette.org/…rovani-formu
Ale implementovat do toho i atributy typu class atd.. aby to nedělal programátor v presenteru, by bylo hodně dobrý..
- zbytovsky
- Člen | 18
Jen pro lidi, kteří tohle hledají – pokračování těch maker je zde: https://forum.nette.org/…ni-formularu
V nette2 se formuláře nějak mění, ale dokumentace moc ne. Nějaké postřehy jsem jsem napsal nakonec stránky: https://dev.nette.org/…vykreslovani
- Juginek
- Člen | 1
Nemáte někdo tušení, kam se poděly examply? Například v api.nette u Class Form byla řada tutoriálů (Example: forms/basic-example.php Form definition using fluent interfaces…). Ale po přechodu na nette.org linky zmizely a nikde nic není k nalezení.
Už mě to docela prudí tahle černá můra nette. Nežiju, abych programoval, ale naopak! Tutíž je to docela vopruz a ztráta času dolovat tak elementární věci na dementních fórech protože neexistuje pořádná dokumentace! sorry…
Jug