Centi dnes dostal nápad na vylepšenie
nášho FormHelper na vykreslovanie Intoru formulárov
v Nette. A myslím, že to bol dobrý nápad. Povážte: doteraz sme boli
nútení opakovane vymenovávať pre ktoré políčko ideme vykreslovať
popisok, chybky a samotný widget:
{form $form}
{form:label $form['document']['title']}Titulok{/form:label}
{form:error $form['document']['title']}
{form:text $form['document']['title'], 'width' => '100%'}
{/form}
Po novom sa veci značne zjednodušujú, vďaka párovému Latte helperu
{form:with ...} a pár ďalším novinkám:
{form $form}
{form:label 'document/title' }
{form:error 'document/title' }
{form:text 'document/title', 'width' => '100%'}
{* --- alebo --- *}
{form:with 'document/title'}
{form:label}
{form:error}
{form:text 'width' => '100%'}
{/form:with}
{* --- alebo --- *}
{form:with 'document'}
{form:label 'title'}
{form:error 'title'}
{form:text 'title', 'width' => '100%'}
{/form:with}
{* --- alebo --- *}
{form:with 'document'}
{form:with 'title'}
{form:label}
{form:error}
{form:text 'width' => '100%'}
{/form:with}
{/form:with}
{/form}
Všetky varianty sa dajú miešať jedna cez druhú a použiť to čo príde lepšie. Tu je ukážka kúsku z editora užívateľa:
{form:with 'email'}
<tr>
<th class="w-min">{form:label}E-mail:{/form:label}</th>
<td>
{form:error 'class' => 'mb-s w-text'}
{form:text 'width' => '30em'}
</td>
</tr>
{/form:with}
<tr>
<th class="w-min va-t">{form:label 'password'}Password{/form:label}</th>
<td>
<div class="mb-s">
{form:error 'password'}
{form:password 'password', 'width' => '15em', 'autocomplete' => 'off'}
</div>
<div>
{form:error 'password_confirmation'}
{form:password 'password_confirmation', 'width' => '15em', 'autocomplete' => 'off'}
</div>
</td>
</tr>