n Module @layout
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- carnaby
- Člen | 7
zdravim,
neviem ci je to zamer alebo nie no pri vnoreni viacero modulov sa layout hlada len v aktualnom module a ak sa nenajde pouzije sa default layout. Myslim ze aj tu by bolo dobre obecne spravit kaskadove nacitanie aj pri niekolkonasobnom vnoreni modulov.
terajsi stav hladania layoutu
.../app/templates/PrvyModule/DruhyModule/List/@layout.phtml
.../app/templates/PrvyModule/DruhyModule/List.@layout.phtml
.../app/templates/PrvyModule/DruhyModule/@layout.phtml
.../app/templates/@layout.phtml
este mi tam chyba
.../app/templates/PrvyModule/@layout.phtml
neni to nic zavazne bo sa to da riesit prepisanim fn. formatLayoutTemplateFiles v Presenter
nejak takto :
protected function formatLayoutTemplateFiles($presenter, $layout)
{
$root = Environment::getVariable('templatesDir');
$presenter = str_replace(':', 'Module/', $presenter);
$module = substr($presenter, 0, (int) strrpos($presenter, '/'));
if ($root === Environment::getVariable('presentersDir')) {
$presenter = substr_replace($presenter, '/templates/', strrpos($presenter, '/'), 0);
$module = substr_replace($module, '/templates/', strrpos($module, '/'), 0);
}
$paths=array(
"$root/$presenter/@$layout.phtml",
"$root/$presenter.@$layout.phtml",
);
$modules=explode("/",$module);
while (count($modules)>0)
{
$mx=implode("/",$modules);
$paths[]="$root/$mx/@$layout.phtml";
array_pop($modules);
}
$paths[]="$root/@$layout.phtml";
return $paths;
}
Editoval carnaby (5. 9. 2008 16:01)