Proměnné pro celou aplikaci

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

Ahoj,

s nette a MVP zacinam, takze resim zakladni veci, jak co udelat.. rekneme, ze mam klasicky web, kde se lidi prihlasujou a v horni casti stranky je zobrazeno jmeno prihlasenyho uzivatel – uzivatele umim pres nette prihlasit, zjistit kdo je to, s tim neni problem. Ale kde si mam natahnout jmeno uzivatele a ty informace o nem, ktere pak chci jako promenou predat do sablony? Kde udelat neco jako $this->template->jmeno?

Jde mi o to, abych to udelal na jednom miste a bylo pak jedno, v jakym presenteru jsem a porad jsem tu promennou nastavenou mel.

Editoval kuty.cz (12. 3. 2011 11:03)

Foowie
Člen | 269
+
0
-

Vytvoř si presenter od kterého budou dědit všechny ostatní a ten kód nacpi do metody beforeRender ;)

kuty.cz
Člen | 33
+
0
-

Super, diky.. basepresenter mam, ale potreboval jsem ten spravny nazev metody, do ktery to dat:)

Patrik Votoček
Člen | 2221
+
0
-

startup nebo beforeRender (máš to dokonce v tom předchozím postu od Foowie) nicméně $user se ti do šablony předává automaticky (Nette 2.0)

bojovyletoun
Člen | 667
+
0
-

a co v @layoutu vypisovat $user->identity->jmeno

kuty.cz
Člen | 33
+
0
-

Jasne, ten $user ano, ale slo mi obecne, jak neco takovyho udelat.. i pro jiny promenny treba. beforeRender funguje presne tak, jak sem potreboval.

Šaman
Člen | 2635
+
0
-

Doporučuji dávat to do BasePresenter->startup(). Aby ta proměnná byla k dispozici i když nic nerenderuješ.

Patrik Votoček
Člen | 2221
+
0
-

psal že chce data do šablony a pokud chce do šablony tak ji nejspíše bude vykreslovat takže je imho beforeRender lepší

Šaman
Člen | 2635
+
0
-

Patrik Votoček napsal(a):

psal že chce data do šablony a pokud chce do šablony tak ji nejspíše bude vykreslovat takže je imho beforeRender lepší

Aha, sorry, to jsem přehlíd.

Pokud jde o proměnnou pouze pro (všechny) šablony, tak do beforeRender(). Pokud by šlo ale o nastavení proměnné která má být vždy po ruce, tak do startup().