zobrazení ceny košíku v laylout.late

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

Dobrý den, PHP 5.3.0, Nette Framework version 2.0,

potřebuji v layloutu.late zobrazit celkovou cenu košíku, který je uložen v databázi. Pokusil jsem se o následující kód. Do BasePresenter jsem napsal funkci:

	//Celková cena kosiku
	public function cenaKosiku(){
		$pocetRow = $this->context->createKosiks()->where(array('ip_address' => $ip_address))->sum('kosik.kusu * sklad.cenaprodej');
		return $pocetRow;
	}

a do layloutu.late jsem napsal kód:

<body>

	{if cenaKosiku() > 0}
	   	<a n:href="KosikList:"><img src="{$basePath}/images/kosik-big.png" alt=""></a>

	{/if}

Laděnka mne hlásí že nezná funkci cenaKosiku()

Prosím o radu jak zavolat funkci cenaKosiku() v soboru layloutu.late.

mkoubik
Člen | 728
+
0
-
{if $presenter->cenaKosiku() > 0}
Karel Chramosil
Člen | 114
+
0
-

Děkuji moc za radu, kód už funguje.

Karel Chramosil

Jan Tvrdík
Nette guru | 2595
+
0
-

Nicméně lepší bude předat si tu cenu normálně do šablony, třeba v beforeRender

// v BasePresenteru
protected function beforeRender()
{
	parent::beforeRender();
	$this->template->cenaKosiku = $this->cenaKosiku();
}
{* v šabloně *}
{if $cenaKosiku > 0}
Karel Chramosil
Člen | 114
+
0
-

Děkuji za radu. V šabloně celkovou cenu používám, ale v layloutu.late mám hlavičku pro všechny šablony, kde zobrazuji plný, nebo prázdný košík.

Karel Chramosil
Člen | 114
+
0
-

Beru zpět, nápad je dobrý špatně jsem ho pochopil.