Odeslání proměnné do @layout.phtml

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

Zdravím v BasePresenteru mam tohle

<?php

	$result = $this->db->query($query);
		$this->template->newestSix = $result->fetchAll();

		// i pro multi-byte (napr. UTF-8)
		$conversion_table = Array(
		'ä'=>'a',
		'Ä'=>'A',
		'á'=>'a',
		'Á'=>'A',
		'č'=>'c',
		'Č'=>'C',
		'ć'=>'c',
		'Ć'=>'C',
		'ď'=>'d',
		'Ď'=>'D',
		'ě'=>'e',
		'Ě'=>'E',
		'é'=>'e',
		'É'=>'E',
		'ë'=>'e',
		'Ë'=>'E',
		'í'=>'i',
		'Í'=>'I',
		'ľ'=>'l',
		'Ľ'=>'L',
		'ń'=>'n',
		'Ń'=>'N',
		'ň'=>'n',
		'Ň'=>'N',
		'ó'=>'o',
		'Ó'=>'O',
		'ö'=>'o',
		'Ö'=>'O',
		'ř'=>'r',
		'Ř'=>'R',
		'ŕ'=>'r',
		'Ŕ'=>'R',
		'š'=>'s',
		'Š'=>'S',
		'ś'=>'s',
		'Ś'=>'S',
		'ť'=>'t',
		'Ť'=>'T',
		'ú'=>'u',
		'Ú'=>'U',
		'ů'=>'u',
		'Ů'=>'U',
		'ü'=>'u',
		'Ü'=>'U',
		'ý'=>'y',
		'Ý'=>'Y',
		'ž'=>'z',
		'Ž'=>'Z',
		'ź'=>'z',
		'Ź'=>'Z',
		' '=>'-'
	);

		foreach ($result as $n => $row) {
			$this->template->names[$row->id_poptavky] = strtolower(strtr($row->nazev_vyrobce.'-'.$row->nazev_model, $conversion_table));
		}

		unset($result);
?>

a v layoutu pouzivam promennou names
nicmene se nemuzu zbavit hlasky
Notice: The variable ‚names‘ does not exist in template. in …\libs\Nette\Templates\BaseTemplate.php on line 313

uz u toho ztracim nervy nevi nekdo co s tim ?

jasir
Člen | 746
+
0
-

Mno podle mě protože k se k té proměnné pokoušíš pristoupit jako k poli, musíš tu proměnnou nejdřív inicializovat: $this->template->names = array();… A nebo to pole sestav lokálně a pak teprv nastav proměnnou template.

<?php
$names = array();
foreach ($result as $n => $row) {
	$names[$row->id_poptavky] = strtolower(strtr($row->nazev_vyrobce.'-'.$row->nazev_model, $conversion_table));
}
$this->template->names = $names;
?>

Editoval jasir (15. 10. 2009 16:45)

pjoter
Člen | 118
+
0
-

Díky dík achjo proč ja se vždycky zaseknu u takových blbostí ???