Nastavení ControlInput, skládání nastavení a nestandardní chování

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

Nebylo by fajn, aby tohle (ten třetí odstavec) házelo nějakou výjimku nebo chybu? Dá se to snadno přehlédnout a může to ovlivnit výsledný formulář.

// Z toho vycházím a chci inline zápis možností a podmínky na otvírání dalších částí formuláře (toggle)
$form->addRadioList('iq', 'Jste hloupý', ['1' => 'Ano', '0' => 'Ne']);
// Error - volání getSeparator on rules - OK
$form->addRadioList('iq', 'Jste hloupý', ['1' => 'Ano', '0' => 'Ne'])
	->addCondition(Form::EQUAL, 0)
    	->toggle('welcome-cookie-law-creator')
    ->endCondition()
	->getSeparatorPrototype()->setName(NULL);
// Tohle v tichosti proběhne a vykreslí celý formulář (i to co být vykresleno nemá!)
$form->addRadioList('iq', 'Jste hloupý', ['1' => 'Ano', '0' => 'Ne'])
	->getSeparatorPrototype()->setName(NULL)
	->addCondition(Form::EQUAL, 0)
    	->toggle('welcome-cookie-law-creator')
    ->endCondition();
// Řešení
$form->addRadioList('iq', 'Jste hloupý', ['1' => 'Ano', '0' => 'Ne'])
	->addCondition(Form::EQUAL, 0)
    	->toggle('welcome-cookie-law-creator')
    ->endCondition();

$form['iq']->getSeparatorPrototype()->setName(NULL);
David Matějka
Moderator | 6445
+
0
-

getSeparatorPrototype (a vsechny dalsi get*Prototype) vraceji Nette\Utils\Html, ktere umoznuje nastavit pomoci magie libovolny atribut. Takze to chovani je spravne

Pavel Kravčík
Člen | 1205
+
0
-

Jasně rozumím, správné to z toho pohledu tedy je. Bohužel to moc intuitivní není. Díky.