zobrazeni componentForm z jineho presenteru

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

chtel bych se zeptat, kdyz si v presenteru aaa udelam tovarnicku (nebo jak se tomu rika) – createComponentUserForm() a chtel bych ji v template z jineho presenteru (treba bbb) zobrazit jde to nějak?

jinak receno potrebuji {widget userForm} kde userForm je v jinem presenteru.

Šaman
Člen | 2666
+
0
-

CreateComponentXxx() musí být v tom samém presenteru, ke kterému patří šablona. Ale definice formuláře může být v samostatném souboru. (Tzn. jedna třída s formulářem = definice komponenty, a v několika presenterech metoda CreateComponentXxx() = vytvoření komponenty pro vložení na šablonu).
Hodím sem takový malý návod na formuláře jako komponenta, ale chvilku to potrvá (tak do oběda).


EDIT: Tak sice to asi není to, co potřebuješ ale když jsem slíbil tu komponentu, tak tady je. Není to sice návod, ale jen odzkoušené zdrojáky, ale případné dotazy rád zodpovím.

Editoval Šaman (1. 6. 2010 15:52)

redhead
Člen | 1313
+
0
-

Můžeš podědit oba presentery ze stejného předka, kde bude ta továrnička.

Honza Kuchař
Člen | 1662
+
0
-

Tady jsem popisoval něco podobného: https://forum.nette.org/…iewtopic.php?…

mkoubik
Člen | 728
+
0
-

Buďto to dědění, nebo
UserForm.php:

class UserForm extends AppForm
{
  public function __construct($name='', $parent=null)
  {
    parent::__construct($name, $parent);
    $this->addText('username', 'Uživatelské jméno');
    ...
  }
}

a pak v těch presenterech, kterých se to týká jenom:

public function createComponentUserForm()
{
  return new UserForm;
}
happy
Člen | 9
+
0
-

diky za pomoc. presne neco takoveho jsem hledal.

Jan Tvrdík
Nette guru | 2595
+
0
-

Je to jedno, ale logicky patří někam do app/forms.

petr.pavel
Člen | 535
+
0
-

Nyní máme už i příklad v dokumentaci. Navazující diskusi najdete v jiném vlákně.