Zobrazit dva nahlady (view) naraz v jednej akcii
- MIKI
- Člen | 34
Zdravim,
robim si web s vlastnou administraciou pomocou Nette. „Klasicka administracia menu“ obsahuje aj pridavanie noveho. Cize mam akciu (a view) add, kde je formular. Ale rad by som napriklad podtym videl aj zoznam menu, ktory mam v akcii (a view) show.
Je mozne (ak ano, ako) zobrazit dva view pri jednej akcii? Teda spojit bloky
„content“, ktore vyuzivam pre view podla akcii.
Pripadne poradte „cistsi MVC“ sposob ako to dosiahnut
Vopred vdaka za pomoc
- na1k
- Člen | 288
Jestli to chápu správně, tak řešením bude využít dědičnost šablon anebo vytvoření komponenty, která se bude o vykreslování menu starat (jestliže bys potřeboval nějakou složitější logiku).
Ve svém projektu mi každá
šablona akce rozšiřuje @sublayout
, který pak rozšiřuje
hlavní @layout
.
Sublayout vlastně jenom plní blok #menu
v hlavním layoutu a
definuje blok #submenu
.
Šablona konkrétní akce potom volitelně mimo bloku #content
plní i #submenu
, což je praktické v tom, že například
u akce overview
do submenu dám odkazy na přidání apod.,
zatímco v akci edit
submenu nenaplním. Tím jednoduše vyrábím
menu závislé na konkrétní šabloně.
A druhý „trik“ je v tom, že @sublayout
můžu definovat
pro každý presenter zvlášť – do každé složky
/templates/xxx
dám jeden a tím mám menu závislé tentokrát na
aktuálním presenteru.
Snad je to srozumitelné a je to to, čeho se snažíš dosáhnout ;-)
Osobně preferuju tenhle způsob, protože položky menu jsou statické a mám
radši když je vidím přímo v šabloně, než aby mi je generovala
komponenta kdoví jak a kdoví odkud, prostě kouknu a vidím a můžu rovnou
upravovat :-)
- MIKI
- Člen | 34
@na1k (btw nie je to projekt do IIS :D )
diky za odpoved, ale asi sme sa neporozumeli :)
V podstate ani nejde o menu.
Skusim este raz
Mam administraciu niecoho (dajmetomu obrazky).
Mam teda akcie: show, add, edit, delete
V >show< mam tabulku, kde mam informacie, ktore chcem vidiet (id, nazov, cesta, nahlad obrazku).
V >add< mam formular na pridanie noveho obrazku. A tu by som chcel vidiet tu istu tabulku, ktoru vidim v >show<. (Napriklad aby som nemal zhodne meno obrazka (ano, to si osetrim, ale chcem proste vidiet tu tabulku :D ) )
Cize chcel by som „vlozit“ >show< do >add<. Ako to spravit, aby som mohol vyuzit aj >show< osobitne?
Ak bude treba, mozem dolozit zdrojove subory (napiste coho :) )
Editoval MIKI (6. 11. 2010 23:15)
- na1k
- Člen | 288
Tak v tom případě bych to asi řešil komponentou, která se vykreslí jako tabulka.
V šabloně pak jen něco jako {widget tabulka}
, případně
jí můžeš předat nějaké parametry, např. filtrování které obrázky
bude vypisovat nebo informaci o tom v jaké podobě se má vykreslit (např.
pro ). Klidně to může být takový malý datagrid :)
Teď už tě chápu správně? ;)