Více šablon pro jeden web

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

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
+
0
-

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
+
0
-

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
+
0
-

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

Chuchy
Člen | 77
+
0
-

A ještě když bych chtěl mít rozdělenou část pro presenters na:

presenters
presenters/user
presenters/admin

Změny k těmto cestám najdu kde?