komponenty v layoutu

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

Zdravim,

jak nejlepe docilit stavu, ze mam layout a v nem na ruznych mistech vypisy komponent(y) – mam napriklad 3 sloupcovy layout, kde v levem a prevem sloupci chci mit nekolik(i stejnych) komponent, ktere se s urcitou strankou meni(na /stranka bude 5 komponent, na /stranka-2 bude 7 komponent).
Komponenta menu bude mit vypis v hlavicce pro hlavni menu a na urcitych strankach take v levem sloupci pro submenu dane stranky.

Po precteni dokumentace si myslim, ze by tohle mohl obstarat block #submenu, ktery by se naplnil rozsirenim sablony(jak to ale udelat s komponentou za predpoladu jedine action), nebo pak snippet, ale ten jsem z dokumentace nepochopil vubec(za predpokladu, ze budu ignorovat ajax), ani fifteen mi nebyl moc napomocen, pokud tam tech snippetu bude 5, jak rozlisit, ktery patri ktere komponente a jak je podminene vypsat podle zvolene stranky? (url se odkazuje vzdy na stejnou action)

Asi jsem to napsal dost zmatene, tak jeste jeden priklad :) Mam komponentu reference, kterou si vytvorim a zavolam render pri pozadavku na reference. Jak ale do praveho/leveho sloupce dostat jednoduse menu kategorii pro reference?

Jod
Člen | 701
+
0
-

Akurát robím na nette jeden snippetovací engine. Asi to na frontende poriešim cez nejaký ComponentContainer ktorý ich normálne cez foreach vyrenderuje. No problemo :) Alebo stačí keď ich dáš do pola a cez foreach vypíšeš.

insider
Člen | 31
+
0
-

No vzhledem k tomu, ze snippety vubec nechapu, tak mi to moc nepomohlo :)

Jod
Člen | 701
+
0
-

Nehovoril som o nette snippetoch, tú hlášku môžeš ignorovať :D
Wiki:

Snippet is a programming term for a small region of re-usable source code, machine code or text.

Normálne tie komponenty narvi do poľa (ešte lepšie do ComponentContaineru) a vypíš ich cez foreach :D

R2D2
Člen | 22
+
0
-

a pokud by náhodou v komponentách jednou byly snippety, je potřeba dávat zavináče nejen u @{$component->render()} ale i u @{foreach} a @{/foreach}, jinak se generuje chybný kód (křížené bloky)

Jod
Člen | 701
+
0
-

Prosímťa nemeť ho zo snippetmi, teraz písal, že ich vôbec nechápe. :D Myslím, že bez tých zavináčov len nefunguje ajax. A keď už tak ten zavináč treba dať hlavne pred include content v layoute.