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
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
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)