Widgety
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jakub Lédl
- Člen | 55
Zdravím. Mohl by mi někdo vysvětlit, jaký je rozdíl ve funkcionalitě mezi tímto:
v presenteru
<?php
public function createComponentLoginForm() { ... }
?>
v šabloně
{control loginForm}
a tímto:
v presenteru
<?php
public function createComponentLoginForm() { ... }
public function renderLogin() {
$this->template->form = $this['loginForm']
}
?>
v šabloně
{!$form}
? Děkuji mnohokrát.
- Lopata
- Člen | 139
Jestliže chceš vykreslovat form pomocí conventional rendereru, tak
varianta s {control loginForm}
je elegantnější. Má však svá
omezení. V praxi je mnohdy potřeba formulář vykreslit rozmanitěji. Ta
první varianta je omezená pouze na
{control form errors}
{control form begin}
{control form end}
zatímco u té druhé lze vykreslovat formulář postupně:
<?php
{$form['jmeno_prvku']->label} <jakekolivHtml> {$form['jmeno_prvku']->control}
?>
To ale lze udělat i pomocí první variany pomocí šablonové proměnné
$control
:
<?php
{$control['loginForm']['jmeno_prvku']->label} <jakekolivHtml> {$control['loginForm']['jmeno_prvku']->control}
?>
Je s tím ale spousta psaní, které by mé nervy nevydržely po dobu
vykreslování celého formu.
Pak ještě lze vytvořit Vlastní
renderer