Vložení promenné do šablony
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- bluray
- Člen | 178
Dobrý den, potřebuji poradit. mám tedka v šabloně default.latte toto:
<h1 n:block="title">{"Název: ".$article->name}</h1>
ale chci to předělat tak, aby nadpis byl v @layout.latte, tedy něco jako:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="robots" content="{$robots}" n:ifset="$robots">
<title>{block title|striptags}Nette Application Skeleton{/block}</title>
<link rel="stylesheet" media="screen,projection,tv" href="{$basePath}/css/screen.css">
<link rel="stylesheet" media="print" href="{$basePath}/css/print.css">
<link rel="shortcut icon" href="{$basePath}/favicon.ico">
{block head}{/block}
</head>
<body>
<script> document.documentElement.className+=' js' </script>
<div n:foreach="$flashes as $flash" class="flash {$flash->type}">{$flash->message}</div>
<div id="wrapper">
<div class="menu"><h1 n:block="title">{"Název: ".$article->name}</h1></div>
{include content}
</div>
{block scripts}
<script src="{$basePath}/js/jquery.js"></script>
<script src="{$basePath}/js/netteForms.js"></script>
<script src="{$basePath}/js/main.js"></script>
{/block}
</body>
</html>
Jde to nějak udělat? tento nadpis bude na všech ostatních stránkách, takže ho chci mít v layoutu abych ho nemusel kopírovat na jednotlivé view. Díky
- Mysteria
- Člen | 797
Myslíš tohle? Pak nebudeš muset nikde v šabloně psát ten block na vkládání nadpisu, budeš jenom muset do každý šablony předat $article.
<div class='menu'><h1>Název {$article->name}</h1></div>
EDIT: Teď když na to koukám, tak ten tvůj kód v @layout.latte by fungoval taky, stačilo by vynechat ten kód v default.latte, protože pokud ho neuvedeš, tak se jako obsah použije ten defaultní co máš v layoutu. Naopak pokud ho někde v šabloně uvedeš, tak se jím přepíše.
Editoval Mysteria (30. 5. 2014 18:40)