Dědičnost includovaných šablon
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Phoenix
- Člen | 13
Ahoj, mám následující šablony:
- layout.phtml
- view.phtml
- other.phtml
V layout.phtml mám {include #foo}. Ve view.phtml mám {include other.phtml} a nyní bych chtěl, abych v other.phtml mohl definovat blok #foo, který by se includnul do layout.phtml. Jak na to, prosím?
Čekal jsem, že to půjde standardně, ale nešlo to, ten #foo blok to v other.phtml prostě vypsalo. Našel jsem makro {extends}, které jak jsem pochopil má na starost dědění, ale nejsem si jistý, co mám dědit. Zkusil jsem podědit view.phtml i layout.phtml a ani jedno mi nefungovalo. Respektive šablonu other.phtml mám v úplně jiné složce, takže jsem v other.phtml měl něco jako {extends ../../templates/presenter/view.phtml}. Ještě pro jistotu znova ořezané soubory:
layout.phtml:
<!DOCTYPE html>
<html>
<head>
<title>{block #foo}výchozí obsah{/block}</title>
</head>
<body>
{include #content}
</body>
</html>
view.phtml:
{block content}
{include $userTemplate}
other.phtml:
{block #foo}title{/block}