Vlastná Štruktúra Nette Templates
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- SontoEremo
- Člen | 341
Zdravím,
Chcem sa opýtať, či riešil niekto z Vás takúto štruktúru
Mám v App\Module\HomeModule\Templates\default\…
Ako mám naznačiť nette aby Nehľadalo v zložke templates ale v zložke
templates\nieco\…
Chcem dosiahnuť toho, že budem mať v templates viac šablón teda
templates\default\…
templates\bluecamel\…
templates\redhell\…
- David Matějka
- Moderator | 6445
Staci v base presenteru prekryt metody formatLayoutTemplateFiles a formatTemplateFiles a pozmenit tak defaultni implementaci
- SontoEremo
- Člen | 341
Nazdar @DavidMatějka
Takže stačí skopírovať formatLayoutTemplateFiles a
formatTemplateFiles vložiť do BasePresenter?
BasePresenter.php
abstract class BasePresenter extends Presenter {
/**
* Formats layout template file names.
* @return array
*/
public function formatLayoutTemplateFiles()
{
$name = $this->getName();
$presenter = substr($name, strrpos(':' . $name, ':'));
$layout = $this->layout ? $this->layout : 'layout';
$dir = dirname($this->getReflection()->getFileName());
$dir = is_dir("$dir/templates") ? $dir : dirname($dir);
$list = array(
"$dir/templates/$presenter/@$layout.latte",
"$dir/templates/$presenter.@$layout.latte",
);
do {
$list[] = "$dir/templates/@$layout.latte";
$dir = dirname($dir);
} while ($dir && ($name = substr($name, 0, strrpos($name, ':'))));
return $list;
}
/**
* Formats view template file names.
* @return array
*/
public function formatTemplateFiles()
{
$name = $this->getName();
$presenter = substr($name, strrpos(':' . $name, ':'));
$dir = dirname($this->getReflection()->getFileName());
$dir = is_dir("$dir/templates") ? $dir : dirname($dir);
return array(
"$dir/templates/$presenter/$this->view.latte",
"$dir/templates/$presenter.$this->view.latte",
);
}
}
A tam už vykonať potrebné kroky?