Zakaz renderovani form controlu + dotaz na vkladani controls?

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

Zdravim,

mam checkbox a potreboval bych jej tvorit, ale pro add form jej chci odstranit (nechci aby byl viditelny, ale pres style tam porad jakoby je, jen skryty) a pro edit formular jej chci zobrazit.
Je to nejak mozne? Prvni jsem hledal neco setVisibility nebo neco takoveho, ale nic jsem nenasel.
Pak me napadlo tuto control pridavat, jenze se pridava na konec formulare.
Tudiz, je mozne nejak pridavat prvky doprostred formulare? Treba mezi x-ty a y-ty prvek?

Diky za nakopnuti

blacksun
Člen | 177
+
0
-

Co použít

<?php
  $form['prvek']->getControlPrototype()->class('trida1 skryty-prvek dalsi-trida');
?>

? To by mohlo stačit si ho skrýt přes css rovnou a pak odkrývat, ne? Jestli jsem to dobře pochopil..

Dj_Oggy
Člen | 67
+
0
-

Normalne by to tak stacilo, ale vzhledem k tomu, ze se ten form ve vychozim nastaveni renderuje do tabulky, tak kdyz ho skryju, tak v te tabulce zustane a kdyz se prida dalsi controla, tak tam jsou je mezera mezi nima a tu prave nechci.

Jeste me napadlo primo umistit controly formu primo do sablony a pomoci makra if to zobrazovat/skryvat.

Honza Kuchař
Člen | 1661
+
0
-

Přidávat mezi prvky formulářů se samozdřejmě dá, ale je to lehce komplikovanější a to proto, že $form->addCheckbox volá $form[$name] = new CheckBox($label); no a toto volá $form->addComponent (new Checkbox($label), $name);

Tzn, pokud chceš přidat něco před něco, tak tam napíšeš toto:

$checkbox = new Checkbox("popisek" /* Možná se toho tady dá nastavit více, z hlavy nevím */); // Vytvoření objektu checkboxu
$form->addComponent($checkbox,"jmeno","nazevKomponentyPredKterouChcesCheckboxVlozit"); // Připojení checkboxu do stromu komponent
$form["jmeno"]->addRule(/* Něco */); // Možná by šlo i $checkbox->addRule(), ale v té chvíli, ještě není komponenta připojená do stromu komponent, takže nevím, jestli to bude fungovat
Honza Kuchař
Člen | 1661
+
0
-

Jeste me napadlo primo umistit controly formu primo do sablony a pomoci makra if to zobrazovat/skryvat.

To taky není špatné, ale potom dostaneš v onSubmit jako hodnotu toho skrytého políčka vždy default.

Dj_Oggy
Člen | 67
+
0
-

Diky, to se hodi.

Ola
Člen | 385
+
0
-

Také by mělo fungovat unset($form['name']);