n Module @layout

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

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)