Více šablon pro jeden web
- Chuchy
- Člen | 77
Ahoj,
začínám s Nette, takže mě hned neukamenujte, třeba jsem jen špatně
gůglil, ale chtěl jsem se zeptat, chtěl bych mít na webu více šablon,
nejedná se pouze o změnu stylu, ale i rozležení a chtěl bych poradit nebo
někam nasměrovat, jak bych mohl přepsat systém pro více šablon, našel
jsem, že se to dá jaksi upravit v Presenteru, ale nechci dělat věci
zbytečně složitě, tak se raději ptám.
Předem děkuji a omlouvám se za své banálně zbytečné dotazy.
- David Matějka
- Moderator | 6445
pokud chces mit opravdu jiny sablony (tedy jak pro @layout, tak sablony jednotlivych presenteru), tak budes muset v presenteru prepsat metody formatLayoutTemplateFiles a formatTemplateFiles tak, aby vratily vzdy cesty dle aktualniho stylu
- Chuchy
- Člen | 77
Díky,
takže pokud to nedělám moc složitě, tak mi stačí do Presenteru, přidat
atribut třeba $theme a pak ho v těch dvou metodách vložit. A až budu mít
hotové uživatelské rozhraní, tak přidat do třídy Presenter setter a
nastavit si, tam dle uživatelského nastavení vhodné téma.
public function formatTemplateFiles() {
$name = $this->getName();
$presenter = substr($name, strrpos(':' . $name, ':'));
$dir = dirname($this->getReflection()->getFileName());
$dir = is_dir("$dir/templates") ? $dir : dirname($dir);
$theme = $this->theme;
return array(
"$dir/templates/$theme/$presenter/$this->view.latte",
"$dir/templates/$theme/$presenter.$this->view.latte",
"$dir/templates/$theme/$presenter/$this->view.phtml",
"$dir/templates/$theme/$presenter.$this->view.phtml",
);
}
- duskohu
- Člen | 778
Alobo mozes skusit toto: NasExt/Templating
Dokaze formatovat layout, view, fileTemplate pre control, alebo samostatne
fileTemplates,
Staci injectnut do presentra, control, alebo kde potrebujes. A ak sa ti
formatter nepaci, resp. chces vlastnu logiku, staci ho vymenit. doc