Vlastní latte helper → vytvoření odkazu

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

Vytvořil jsem si vlaszní helper pro úpravu dat.
Nyní bych potřeboval, abych v něm mohl vytvořil link, ale nijak se mi to nepovedlo.
Nijak se mi nepovedlo dostat k presenteru a funkci link().

Jak se dostat k funkci link() v helperu, případně jak ten link v helperu vytvořit?

Editoval sumiisakua (26. 2. 2012 18:00)

Ot@s
Backer | 476
+
0
-

Nejprve jak helperu předat proměnné. Teoreticky bys také v helperu mohl použít (nedoporučuje se):

Nette\Environment::getApplication()->getPresenter()->link(...);
sumiisakua
Člen | 36
+
0
-

Environmet určitě neéé ;)

To jsem četl, ale tam se použí anonymní funkce stím, že při registraci helperu se zároven i na tom místě provádí jeho průběh.

Jenže já ho mám ve vlastní třídě:

$this->template->registerHelper('profile', '\ProfileHelper::helper');
mkoubik
Člen | 728
+
0
-

Tak pokud je ta metoda statická, tak s tím moc nehneš. Leda ten presenter tady předat do statické proměnné, ale to je samozřejmě ještě víc fuj. Proč prostě nevytvoříš objekt a nepředáš normální callback?

voda
Člen | 561
+
0
-
$helper = new \ProfileHelper($this); // $this je presenter
$this->template->registerHelper('profile', array($helper, 'helper'));
sumiisakua
Člen | 36
+
0
-

mkoubik: Pokud znáš lepší řešení, než to co mám já, tak budu za jeho vysvětlení, prozrazení jedině rád ;)

mkoubik
Člen | 728
+
0
-

Myslel jsem to přesně tak, jak to píše voda podemnou, když si vytvoříš objekt (btw, nezapoměň si odstraňit klíčové slovo static u metody) tak už mu můžeš předat cokoliv (konstruktorem, setterem).

sumiisakua
Člen | 36
+
0
-

Díky za pomoc s řešením :)