Proměnná z includované šablony do hlavní – společné šablony

n.u.r.v.
Člen | 485
+
0
-

Ahoj, v hlavní šabloně (@layout.latte) mám:

{default $title = 'mujweb.cz'}
{default $description= '...'}
{default $keywords= '...'}

<title>{$title|striptags}</title>
<meta name="description" content="{$description|striptags}" />
<meta name="keywords" content="{$keywords|striptags}" />

Pak mám klasicky vkládání šablon:

<div id="content">{include #content}</div>

A v šablonách (např. tree.latte)pak mám:

{layout '../../../../templates/@layout.latte'}

{$title = '...'}
{$description = '...'}
{$keywords = '...'}

{block menu}
{include './inc/'.$lang.'/menu.latte'}
{/block}

Další HTML obsah stránky
...

To funguje, ale teď potřebuji mít šablonu (tree.latte), která includuje dle proměnné ($page) další šablonu a až v té další includované bude nastavení těch proměnných, které se vypisují v hlavní šabloně. Jenže to mě nefunguje a místo toho se nastaví default a do obsahu stránky se vypíše obsah proměnných co nastavím v té includované šabloně.

Tedy v šabloně tree.latte bude:

{layout '../../../../templates/@layout.latte'}

{block menu}
{include './inc/'.$lang.'/'.$page.'.latte'}
{/block}
...

Jak můžu dostat obsah proměnné v includované šabloně do hlavní šablony? Díky

Editoval n.u.r.v. (30. 11. 2020 14:51)

David Grudl
Nette Core | 8099
+
0
-

Jedno z možných řešení https://latte.nette.org/cs/recipes#…

n.u.r.v.
Člen | 485
+
0
-

Hmm, zkusil jsem to a dostávám chybu syntax error, unexpected ‚:‘, expecting ‚]‘

Jestli to náhodou není tím, že jedu na starším latte 2.4.8 a php 5.6

David Grudl
Nette Core | 8099
+
0
-

Tak dej {include 'included.latte', vars => $vars}

dakur
Člen | 493
+
0
-

@nurv Vznikla teď pěkná stránka právě o tom, jak pracovat s dědičnosti a předáváním: https://latte.nette.org/…-inheritance

n.u.r.v.
Člen | 485
+
0
-

Díky, kouknu na to