[2.0.12] Controls constructor

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

Ahojte,

potreboval by som nadefinovat v controlery nejake defaultne nastavenia ale neviem kde ich jednotne inizializovat aby bolo dostuplne pre celu triedu/metody
do __construct to umiestnit nemozem lebo v nom nemam este pristup ku presenteru ked ked setUp umiestnim do metody render tak k tym hodnotam nemam pristup v callbackoch z formularu napr. a musim ich tam opatovne inializovat

neviete kde je teda to magicke miesto kde to mozem setnut raz a budu tie data zo setUpu(prezenteru) dostupne , pre vsetky mnou pouzivane metody?

Vojtěch Dobeš
Gold Partner | 1316
+
0
-
protected function attached($parent)
{
	if (!$parent instanceof UI\Presenter) {
		return;
	}

	// kod zde se zavola jednou a $parent tu bude presenter
}
HappyFace
Člen | 162
+
0
-

vojtech.dobes napsal(a):

protected function attached($parent)
{
	if (!$parent instanceof UI\Presenter) {
		return;
	}

	// kod zde se zavola jednou a $parent tu bude presenter
}

tak som si to doplnil ale asi to nebude uplne ono :( davam tu len to nacom mi to pada.
Nadefinovanie

		protected function attached($parent)
		{
			if (!$parent instanceof UI\Presenter) {
				return;
			}

			$this->_presenter = $parent;
			$this->_translator = $this->_presenter->translator;
		}

pouzitie:

		protected function createComponentForm()
		{
			$form = new \Nette\Application\UI\Form;
			$form->setTranslator($this->_translator);

			$form->addText('code', 'label', NULL, 6)
					->setAttribute('placeholder', $this->_translator->translate('input.placeholder'));
			return $form;
		}

hlasi mi to ze $this->_translator->translate() non-object ztoho vypliva ze ktomu „attached“ asi nedoslo alebo doslo strasne skoro .. translator pouzivam "":https://componette.org/search/?…` presne tak ako je tomu na tej stranke

David Matějka
Moderator | 6445
+
0
-

mas v use

use Nette\Application\UI;

? protoze to UI\Presenter je zkratka pro Nette\Application\UI\Presenter

jinak k tomu jestli se to zavolalo: to je tak tezky si tam dumpnout neco, abys to videl?

hAssassin
Člen | 293
+
0
-

Nejdriv si pridej do attached() uplne nazacatek parent::attached($parent). Kdysi sem na to zapomnel a cely to prestalo fungovat. Pak navic asi nemusis prirazovat parenta k _presenter.

Ale spis mi unika vyznam toho vseho. Proc si z presenteru tahas translator, kdyz ho stejne v tovarne predavas pres setTranslator() ?

David Matějka
Moderator | 6445
+
0
-

@hAssassin: myslim, ze ta tovarna createComponentForm je v komponente a ne v presenteru

HappyFace
Člen | 162
+
0
-

matej21 napsal(a):

@hAssassin: myslim, ze ta tovarna createComponentForm je v komponente a ne v presenteru

presne tak koli tomu ze tie iste formulare pouzivam na niekolkych miestach a v niekolkych projektoch vsetko je pisane cez komponenty a len pri ich vkladani do sablony ak potrebujem aby mali inu sablonu tak ju tam nastavim ale funkcne vsetko ostava nezmenene