Více verzí jednoho formuláře

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

Chtěl bych se zeptat, jak by jste řešili vytvoření dvou formulářů se stejnými položkami, pouze s jinými tlačítky. Jednou například s tlačítkem „edit“ a podruhé „insert“.

Zkoušel jsem to takhle:

protected function createComponentForm($name) {
        $form = new AppForm();

        $form->addText('polozka', _('Polozka:'))
            ->addRule(Form::FILLED, _('...'));

        return $form;
    }

    protected function createComponentEditForm($name) {
        $form = clone $this['form'];

        $form->addSubmit('edit', _('Edit'));
        $form->onSubmit[] = array($this, 'editFormSubmitted');

        return $form;
    }

    protected function createComponentInsertForm($name) {
        $form = clone $this['form'];

        $form->addSubmit('insert_next', _('Insert and add next'));
        $form->addSubmit('insert', _('Insert'));
        $form->onSubmit[] = array($this, 'insertFormSubmitted');

        return $form;
    }

Pokud však v šabloně vykreslým oba formuláře (ne že bych to aktuálně potřeboval, ale jen tak zkouším jak by se to chovalo), u druhého se zobrazí pouze tlačitka…

Editoval norbe (18. 7. 2009 20:38)

Blizzy
Člen | 149
+
0
-

Je to vyřešené v examples akrabat.forms (CD Collection) v distribuci, podívej se do DashboardPresenteru. Je tam továrnička na komponenty a při renderování view se text na tlačítku změní.

		$form = $this->getComponent('albumForm');
		$form['save']->caption = 'Add';