Korektné vytvorenie šablóny mailu pre Kdyby\Events [Vyriešené]

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

Zdravím,

snažím sa odoslať mail pri zavolaní udalosti spravovanej pomocou Kdyby\Events.

Narazil som na problém vytvorenia korektnej šablóny mailu, konkrétne použitie makra n:href.

Štandardne použiteľné

$template = clone $this->presenter->template;

alebo

$template = $this->createTemplate();

nie je možné použiť keďže je objekt definovaný ako

class FooListener extends Nette\Object implements Kdyby\Events\Subscriber

a neviem pristupovať k presentru.

Je možné službe FooListener nejak dodať aktuálny presenter?

Vďaka.

Editoval romiix.org (30. 10. 2013 12:21)

Majkl578
Moderator | 1364
+
0
-

Jedině asi injectnout si Application a z ní si ho vytáhnout.

sifik
Člen | 27
+
0
-

Nebo můžeš zkusit https://github.com/…mail-Package :) kde je toto vše již vyřešené.

Filip Procházka
Moderator | 4668
+
0
-

Úplně normálně dělám tohle

class FooListener extends Nette\Object implements Kdyby\Events\Subscriber
{
	private $app;

	public function __construct(Nette\Application\Application $app)
	{
		$this->app = $app;
	}

	/** @return Nette\Templating\FileTemplate|\stdClass */
	private function createTemplate()
	{
		return clone $this->app->presenter;
	}

	// ...
}
romiix.org
Člen | 343
+
0
-

Vďaka všetkým ;)

Rady pomohli.