jak se používá předávání argumentů do bloku pomocí include?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
esorimer
Člen | 114
+
0
-

Zdravím,
chtěl bych se zeptat co dělám špatně v následujícím kusu kódu?

{block content}
{foreach $menuItems as $url => $menu}
	{include #menuItem, xurl => $url, xmenu => $menu}
{/foreach}
{/block}

{block #menuItem}
	{$xurl}
{/block}

Končí to s chybou „Undefined variable: xurl“.
Postupuji přesně dle návodu "":https://latte.nette.org/cs/tags#…

Badaboom
Člen | 33
+
0
-

Ta chyba nevznikne v include, ale v definování bloku menuItem, protože se ho snažíš současně vykreslit. Ten blok de facto vykresluješ dvakrát – jednou do něj předáváš proměnné, podruhé ne. Pokud chceš blok jenom definovat (a hned nevykreslovat), použij

{define #menuItem}
    {$xurl}
{/define}

Editoval Badaboom (7. 2. 2013 12:03)

esorimer
Člen | 114
+
0
-

Aha, to by mě podle toho návodu nenapadlo. Každopádně díky :)

llook
Člen | 407
+
0
-

Případně, pokud bys rovnou chtěl i ten block fakt vypsat, tak by se snad dalo použít makro default:

{block #menuItem}
	{default $xurl = 'výchozí hodnota'}
	{$xurl}
{/block}