Jak šablonovat více layoutu
- AdamBI
- Člen | 17
Zdravím,
Mám takovej problém, popíšu zde mojí situaci.
Mám hlavní layout který je @layout.latte jak jsme normálně zvyklí a
ten vypadá nějak takto:
{**
* @param string $basePath web base path
* @param array $flashes flash messages
*}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{ifset title}{include title|striptags} | {/ifset}</title>
<link rel="stylesheet" href="{$basePath}/css/style.css">
<link rel="shortcut icon" href="{$basePath}/favicon.ico">
<meta name="viewport" content="width=device-width">
{block head}{/block}
</head>
<body>
<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>
{include content}
{block scripts}
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//nette.github.io/resources/js/netteForms.min.js"></script>
<script src="{$basePath}/js/main.js"></script>
{/block}
</body>
</html>
Ptostě je tam hlavička, patička a pod body je
{include content}
Mám další šablonu a to Homepage/default.latte
v ní mám tento kod
{layout 'layout.latte'}
{block content}
{block tabs}
text 1
{/block}
{/block}
a v Homepage/layout.latte
<div class="col-md-9">
{block tabs}{/block}
</div>
A já bych potřeboval aby když zobrazím hlavní stránku tak aby se tam
zobrazil obsah Homepage/layout.latte kde by byl v bloku tabs obsah který je
definován v default.latte a to samí třeba když zobrazím stránku
dalsi.latte tak aby se tam zase zobrazil obsah který je v layout.latte kde by
bylo zase v bloku tabs obsah který je definován v dalsi.latte .
Prostě mi jde o to aby se mi na ruzných stránkán zobrazoval stejný obsah
ale pouze s jiným obsahem v bloku tabs. Ale musí zůstat stejná hlavní
šablona @layout.latte kde chci pak vkládat další šablony který už
nebudou v Homepage a budou se choval normálně.
Snad to nějak chápete moc to neumím popsat, budu rád za každou pomoc.
Děkuji.
- AdamBI
- Člen | 17
To sice funguje ale teď se mi tam neukáže hlavička a patočka
z hlavního @layout.latte
Potřebuju aby se ten obsah z Homepage/@layout.latte naincludoval do
hlavního @layout.latte
{**
* @param string $basePath web base path
* @param array $flashes flash messages
*}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{ifset title}{include title|striptags} | {/ifset}</title>
<link rel="stylesheet" href="{$basePath}/css/style.css">
<link rel="shortcut icon" href="{$basePath}/favicon.ico">
<meta name="viewport" content="width=device-width">
{block head}{/block}
</head>
<body>
<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>
{include content} **Zde Homepage/@layout.latte**
{block scripts}
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//nette.github.io/resources/js/netteForms.min.js"></script>
<script src="{$basePath}/js/main.js"></script>
{/block}
</body>
</html>
- F.Vesely
- Člen | 369
AdamBI napsal(a):
To sice funguje ale teď se mi tam neukáže hlavička a patočka z hlavního @layout.latte
Potřebuju aby se ten obsah z Homepage/@layout.latte naincludoval do hlavního @layout.latte
Z tveho prvniho prispevku jsem to pochopil jinak. Pak jedine, jak pise
Antik, budes muset v kazdem <action>.latte
includovat
blocks.latte
.