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
+
0
-

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
+
0
-

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)

bluray
Člen | 178
+
0
-

No jo, to funguje, když jsem vynechal kod v default. ale zajímavé je že předtím to nešlo, psalo mi to pořád že jsem ten blok už deklaroval. přitom jsem ho v default neměl a byl jenom v layoutu…