bootstrap a vykreslení formulářů

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

Ahoj,

můžete mě někdo poradit jak přenastavit nette aby pro vykreslování formulářů používalo bootstrap jako výchozí?

Našel jsem tento kód od Davida, ale nějak mě nebaví ho vždy řešit u každé vytvářené komponenty.

// setup form rendering
        $renderer = $form->getRenderer();
        $renderer->wrappers['controls']['container'] = NULL;
        $renderer->wrappers['pair']['container'] = 'div class=form-group';
        $renderer->wrappers['pair']['.error'] = 'has-error';
        $renderer->wrappers['control']['container'] = 'div class=col-sm-9';
        $renderer->wrappers['label']['container'] = 'div class="col-sm-3 control-label"';
        $renderer->wrappers['control']['description'] = 'span class=help-block';
        $renderer->wrappers['control']['errorcontainer'] = 'span class=help-block';

        // make form and controls compatible with Twitter Bootstrap
        $form->getElementPrototype()->class('form-horizontal');

        foreach ($form->getControls() as $control) {
            if ($control instanceof Controls\Button) {
                $control->getControlPrototype()->addClass(empty($usedPrimary) ? 'btn btn-primary' : 'btn btn-default');
                $usedPrimary = TRUE;

            } elseif ($control instanceof Controls\TextBase || $control instanceof Controls\SelectBox || $control instanceof Controls\MultiSelectBox) {
                $control->getControlPrototype()->addClass('form-control');

            } elseif ($control instanceof Controls\Checkbox || $control instanceof Controls\CheckboxList || $control instanceof Controls\RadioList) {
                $control->getSeparatorPrototype()->setName('div')->addClass($control->getControlPrototype()->type);
            }
        }
Šaman
Člen | 2666
+
0
-

Udělej si třídu BaseFormFactory, která v metodě create() vytvoří prázdný Form a nastaví mu renderer.
Formuláře pak nebudeš vytvářet pomocí operátoru new, ale tou továrnou.

h4kuna
Backer | 740
+
0
-

Nebo je cesta hodit si to do vlastního rendereru, ale ten je opět dobré připojit přes továrnu.