vykreslení části formuláře ve vlastní šabloně

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

ahoj,
jak už se kdysi někdo (bez odpovědi) ptal, rád bych si část formu vykreslil vlastní šablonou, tzn. container & presenter:

class UsersContainer extends Nette\Forms\Container {
	public function __construct() {
		$this->addText(); // ...
	}
	public function render() { ... }
}

// presenter
	public function createComponentSomeForm() {
		// ...
		$form['user'] = new UserContainer;
	}

a latte, když už nejde {control user}, udělal bych třeba toto:

{form someForm}
...
{$form[user]->render()}
{/form}

jenže bych rád, abych měl v metodě render() k dispozici Template, ten je ale jen v Nette\Application\UI\Control a zároveň mohl přidat form prvky, což je zase jen v Nette\Forms\Container ale oba dědit nemůžu. Jak toto řešíte vy?

Napadlo mě mít UserControl extends Nette\Application\UI\Control a uvnitř $this['kdovíco'] = new UserContainer, ale nelíbí se mi ten zbytečnej mezikrok…

ď

Editoval hejdav (6. 5. 2014 10:20)

hejdav
Člen | 50
+
0
-

Nikdo sice neodpověděl, ale na řešení jsem vlastně přišel už tehdy (poslední odstavec). Ten mezikrok je vlastně správný, Control je šablona a formulář je formulář a ne šablona.