Přístup k presenteru z šablony

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

Zdravím,
mám dotaz ohledně šablon. Je možné z šablony přistupovat k presenteru, popř. a to je pro mě důležitější, volat jeho funkce?

Když jsem udělal dump šablony, vysal mi atribut presenter, ale když zkusím v šabloně použít {$presenter->fce()}, vyskočí mi vyjímka o používání metody na proměnnou, která není objekt.

Můj dotaz je, jsou mé myšlenkové pochody správné, nebo bych ze šablony vůbec neměl k presenteru přistupovat?

nanuqcz
Člen | 822
+
0
-

Ahoj, fungovat bude

{? $presenter->fce(); }

{$promenna} slouží k escapovanému vypsání obsahu proměnné.

Buri
Člen | 15
+
0
-

Bohužel, musím zklamat, nefunguje. Když navíc zavolám dump, vypíše se mi, že $presenter má hodnotu NULL.

nanuqcz
Člen | 822
+
0
-

V tom případě mě nic nenapadá. Zkus napsat více informací :-)

  • Verzi Nette
  • jestli problém zůstává i když to testneš na sandboxu
  • jestli je to šablona vytvořená v presenteru, nebo šablona komponenty
Buri
Člen | 15
+
0
-

Tak jsem to nakonec vyřešil přes přístup přes proměnnou $control, která se narozdíl od presenteru předává (a jsem si jistý, že volám kód z prezenteru a ne z komponenty).

Verze nette je poslední stable (12/12/10 tuším). Sandbox ještě zkusím. Každopádně díky za čas. :)

Aurielle
Člen | 1281
+
0
-

$control === $presenter, pokud jsi v šabloně presenteru. Pokud k $presenteru nejde přistoupit, musel sis ho přepsat. V dev Nette funguje ještě $_presenter…