zmena sablony pro formular
- error414-c
- Člen | 45
Cau,
mam komponentu formulare, pro tu komponentu bych potreboval nastavovat jmena sablon do ktere se komponenta vykresli.
Napriklad komponentu uzivatele,
<?php
protected function createComponentUzivatele($name){
return new Uzivatele($this, $name, $typ);
}
?>
a napriklad pro uzivatele $typ = 1 bych potreboval vypsat formular s inputama vedle sebe a $typ =2 uzivatele vypsat s inputama pod sebe.
Proste aby componenta mohla urcovat jmeno svoji sablony
- error414-c
- Člen | 45
hrach napsal(a):
no to si ohlidej v samotne komponente v metode render, kde si vytvaris instanci Template a urcujes sablonu.
muzes me trosku vic nakopnout? diky
- hrach
- Člen | 1838
mno v komponente mas metodu render, pripadne renderNeco. v metode render vytvaris instanci Template:
<?php
public function render()
{
$template = $this->createTemplate();
if ($this->user->typ == 1)
$template->loadFile(dirname(__FILE__) . '/user1.phtml';
else
$template->loadFile(dirname(__FILE__) . '/user2.phtml';
return $template->render();
}
?>
- Patrik Votoček
- Člen | 2221
hrach napsal(a):
…
Jemu se jedná o formuláře takže tipnu si že Uzivatele
dedi
od Nette\AppForm a ten nemá
metodu createTemplate()
protože komponenta formuláře neumí
pracovat se šablonami.
Navíc Nette\Templates\Template
nemá metodu loadFile
nýbrž setFile($file).
Budeš si muset naspat vlastní renderer na formuláře.
Editoval vrtak-cz (14. 5. 2010 20:51)
- hrach
- Člen | 1838
@Vrtak: nojo, to je tak, že mi to ten PHPed napovida :) a pak si to presne nepamatuju :D
- ohledne toho, ze je to podedeny, to me nenapadlo. kazdopadne stale nic nebrani prepsat metodu render na nejakou vlastni, kde vytvorim Template, nactu prislusnou sablonu s rucni definici formulare. prijde mi to jednodussi nez vlasnti render.
Editoval hrach (14. 5. 2010 22:29)