Zmena textu tlačítka vo formulári v komponente

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

Zdravím,
už asi dve hodiny riešim jednu vec a stále sa z toho nejako nemôžem vymotať.

Mám komponentu SadaFormularov:

<?php
class SadaFormularov extends \Components\BaseComponent {
	protected function createComponent($name)
	{
		switch ($name) {
			case "form1":
				$form = new \Components\MyForm;
				$this->addComponent($form, $name);
				$form->addSubmit("ok", "Pokračovať");
				/* ... */
				break;
			case "form2":
				/* ... */
			case "form3":
				/* ... */

	}

	public function renderForm1()
	{
		$template = $this->getTemplate();
		$form = $this->getComponent("form1");
		$template->form = $form;
		$template->setFile(dirname(__FILE__)."/SadaFormularov/form1.phtml");
		$template->render();
	}
?>

a presenter:

<?php
	public function actionPridat() {
		$c = $this->getComponent("SadaFormularov");
		/* Tu by som potreboval zmeniť text tlačítka na "Pridať" */
	}

	public function actionUpravit() {
		$c = $this->getComponent("SadaFormularov");
		/* Tu by som potreboval zmeniť text tlačítka na "Upraviť" */
	}


	protected function createComponent($name)
	{
		switch ($name) {
			case "SadaFormularov":
				$c = new \Components\SadaFormularov;
				$this->addComponent($c, "SadaFormularov");
				break;
		}
	}
?>

Nevedel by mi niekto poradiť spôsob ako na to? Vďaka.

Editoval timbulko (5. 7. 2009 0:04)

Nilp
Člen | 65
+
0
-

V prikladu akrabat (v 0.9 CD-collection) se to takhle resi, tak se zkus kouknout.

timbulko
Člen | 85
+
0
-

Aha, už som to vyriešil. Asi som už bol včera prepracovaný, chcelo to dvojité volanie getComponent :-).

<?php
$form = $this->getComponent("SadaFormularov")->getComponent("form1");
$form['ok']->caption = "...";
?>

Editoval timbulko (5. 7. 2009 12:43)