Předání parametrů pro helper – registrace

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

Udělal jsem si vlastní helper, který potřebuje jednu servisu a funci na tvorbu linků.

Můj problém spočívá v tom, jak přidat funkci pro tvorbu odkazů ($presenter->link(..))?
Celý presenter se mi do heleru cpát nechce.

	protected function createTemplate($class = NULL)
	{
		$template = parent::createTemplate($class);

		$template->registerHelper("BBCode", callback(new BBCodeHelper($this->context->userService), "helper"));

		return $template;
	}
Nox
Člen | 378
+
0
-

Můžeš předat helperu callback, který zavolá $presenter->link(…)

<?php
$presenter = $this;
$bbCodeHelper->setLinkMaker(function($destination) use($presenter) {
    return $presenter->link($destination);
});
?>

no a pak použiješ třeba

<?php
// v helperu
$link = $this->linkMaker('Homepage:default');
?>

Editoval Nox (11. 11. 2012 13:24)

MartinitCZ
Člen | 580
+
0
-

Díky, ikdyž se mi to zrovna nelíbí, ale lepší způsob asi nebude.

Nox
Člen | 378
+
0
-

A já z toho měl takovou radost … :P