Dotaz ohledne bloku – deklarace a vypis

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

Ahoj, pomaličku pronikám do nette a mam takový dotaz. Mám vytvořenou stránku, kde jsou vypsané kategorie, které mají sve podkategorie. Pochopil jsem princip bloku tak, že v latte si nadefinujeme nějaký blok a ten můžeme potom použít v ostatních šablonách. Vypíšu nějaké info co mam

Presenter

	public function renderDefault()
	{
		 $this->template->kategorie = $this->database->table('Kategorie');

	}

Zde mám z databáze vytáhnutou tabulku Kategorie z db default.latte

<ul>
    {foreach $kategorie as $item}
      <li>
              <a n:href="Kategorie:show $cisloKategorie">{$item->JmenoKategorie}</a>
        {? $selection = $item->related('Kategorie','Nadkategorie')}
        {if $selection->count()>0}
             Má podkategorii
              {/if}
      </li>
    {/foreach}
</ul>

A tady mám výpis, který funguje v pořádku. Ale když bych chtěl dát tento výpis do bloku

{block #kategorie}
<ul>
    {foreach $kategorie as $item}
      <li>
              <a n:href="Kategorie:show $cisloKategorie">{$item->JmenoKategorie}</a>
        {? $selection = $item->related('Kategorie','Nadkategorie')}
        {if $selection->count()>0}
             Má podkategorii
              {/if}
      </li>
    {/foreach}
</ul>
{/block}

tak mě to píše chybu :-(..Jedná se mi o to že chci includovat blok kategorie do sebe. Aby místo slov „Má podkategorii“ vypsal dané podkategorie.

{include #menu, menu => $selection}

Jedná se mě o to jak to tedy s těmi bloky je :-) Děkuji za případne rady, jsem z toho trosku jelen :)

nanuqcz
Člen | 822
+
0
-

Ahoj,
pokud jsem pochopil správně, o co ti jde, tak by mělo fungovat tohle:

{block #kategorie}
<ul>
	{foreach $kategorie as $item}
		<li>
			<a n:href="Kategorie:show $cisloKategorie">{$item->JmenoKategorie}</a>
			{? $selection = $item->related('Kategorie','Nadkategorie')}
			{if $selection->count()>0}
				{include #kategorie, kategorie => $selection}
			{/if}
		</li>
	{/foreach}
</ul>
{/block}

EDIT: „tak mě to píše chybu“ → Jakou chybu?

Editoval nanuqcz (19. 1. 2014 12:28)

vvoody
Člen | 910
+
0
-

To sa vždy treba na toto pýtať? Akú chybu a presne ktorý kód ju vyvolá?

hhacker
Člen | 8
+
0
-

vvoody napsal(a):

To sa vždy treba na toto pýtať? Akú chybu a presne ktorý kód ju vyvolá?

Jak jsem psal vyvolává jí když kód hodím obalím blokem.

Chyba:
Nette\InvalidStateException

Cannot include undefined block ‚content‘

hhacker
Člen | 8
+
0
-

Tak jsem se posunul kousek dále, neuvědomil jsem si že mám jednu proměnou špatně. Tudíž block funguje ale když chci udělat blok aby měl název, tak stále píše chybu Cannot include undefined block ‚content‘. …což chápu že blok není nadefinován. Kde se tedy bloky definují ?

hhacker
Člen | 8
+
0
-

jiri.pudil napsal(a):

https://latte.nette.org/cs/tags#…

Tohle si najít dokážu sám. Pokud si přečteš můj přispevek, tak zjistíš že kdyz ten blok vytvořím, tak to píše chybu.

vvoody
Člen | 910
+
0
-

Nemáš chybu niekde inde? Tvoj layout asi vyžaduje blok content, ktorý v šablóne neexistuje?