problem s predanim promenne pri include latte souboru do layoutu

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

Ahoj,
tvorim prvni aplikaci v te nove final verzi nette 2.0 a zasekl jsem se hned na zacatku, mam problem s predanim promenne pri include latte souboru do layoutu:

HomepagePresenter.php:

use Nette\Application\UI\Form,
    Nette\Application as NA;

class HomepagePresenter extends BasePresenter {


  public function renderDefault(){
  }


  public function renderMenu(){

  	$this->template->nejakaPromenna = "xxxx";

  }

}

@layout.latte:

<!DOCTYPE html>
<html>
<link href="block.css" type=text/css rel=stylesheet>
<head>
<title>{include #title}</title>

</head>
    <body>

{include 'Homepage/menu.latte'}

{include #content}

    </body>
</html>

menu.latte:

Nejaka promenna: {$nejakaPromenna}

Promenna se po incluedu menu.latte do @layoutu nevypise. V cem je chyba? V predchozi najake dev verzi
stazene asi v prosinci jsem tenhle zapis pouzival bezne.

Editoval Stevie (27. 2. 2012 16:20)

Stevie
Člen | 18
+
0
-

Prave mi doslo, ze problem nebude ve verzi nette (tvorim to na jinem stroji nez tu predchozi aplikaci, otevrel jsem si tu jinou aplikaci napsanou v predchozi verzi a chova se stejne jak ta v nove stabilni). Nejaky navrh kde problem hledat :-( ?

Editoval Stevie (27. 2. 2012 16:20)

awsickness
Člen | 98
+
0
-

a opravdu volas Homepage:menu ?

pokud ano zkus to prirazeni naspat do starup nebo beforender a uvidime.

Marax
Člen | 28
+
0
-

A co potom otevíráš za odkaz? Tak jak to máš napsané, ti to bude fungovat pouze na Homepage:menu.

Stevie
Člen | 18
+
0
-

Potrebuju aby se mi promenna vypsala/pouzila primo v layoutu (rekneme v ramci nejakeho menu spolecneho pro vsechny stranky). Pokud bych sel pres odkaz primo na stranku Homepage/menu a zavolal bych promennou treba v blocku „content“, promenna se na ni vykresli, ztrati se pri tom include do layoutu.

Jan Endel
Člen | 1016
+
0
-

Taková proměnná kterou používáš napříč presenterem patří do beforeRender().

Stevie
Člen | 18
+
0
-

Diky, pomohlo. Jen jsem trosku nesvuj z predstavy, ze budu muset opravdu kazdou takovouhle promennou deklarovat tady v beforeRender() a predavat tadytudy… myslim ze se zase brzo na neco v tehle souvislosti budu muset zeptat :-)

awsickness
Člen | 98
+
0
-

myslim ze spis potrebujes udelat si
BasePresenter tam si v beforender / starup nebo kdekoliv nadefinovat vsechny promene, ktere budes pouzivat v ramci celeho projektu a pak neni problem.

edit: pokud ti jde o menu zavani to komponentou

Editoval awsickness (28. 2. 2012 10:15)