Latte sablony spajanie usekov HTML

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

Zdravim, mohol by mi prosim niekto vysvetlit spajanie latte sablon? Studujem dokumentaciu ale ked sa pozrem @layout.latte tak tomu prestanem chapat. Ten @layout je vzdy spusteny alebo ako? AKo sa to zostavuje? Ja som si myslel ze k presenteru sa da presentermeno.latte, ale tam mam iba block content, teda ono akokeby sa spustal vzdy ten @layout najprv a nie presenter.latte. Som z toho dost zmateny…

Ide mi hlavne o to, ze chcem mat developer zonu a user zonu a user zona ma uplne inu hlavicku ako developer zona, teda menu a pritom kazda stranka ma v developer/user zone iny obsah. Ako to SPRAVNE spravit? mat nejako latte k presenteru a tam inkludovat hlavicku/menu stranky podla toho ci to je developer, alebo user?

David Matějka
Moderator | 6445
+
+2
-

ano, layout se spousti (skoro) vzdy https://doc.nette.org/…n/presenters

Ide mi hlavne o to, ze chcem mat developer zonu a user zonu a user zona ma uplne inu hlavicku ako developer zona, teda menu a pritom kazda stranka ma v developer/user zone iny obsah. Ako to SPRAVNE spravit?

vytvor si moduly, https://github.com/…odules-Usage

Machy8
Člen | 59
+
0
-

Pokud chceš mít Developer a User zónu vytvoř si moduly, tak jak píše David. Podívej se na mapping ve složce app/config.neon a namespace presenterů, protože pokud budeš chtít tu strukturu obměňovat, budeš muset provést příslušné úpravy. K tomu se hodí si přečíst část o odkazech.

Jestliže budeš chtít změnit layout mezi Developer a User (kupříkladu kvůli té hlavičce, menu, blokům atd.), můžeš nastavit libovolný layout pomocí $this->setLayout('cesta/k/@layoutu.latte'); v metodě beforeRender() v BasePresenteru v příslušném modulu. Kdybys chtěl měnit obsah hlavičky v každé šabloně (například), tak je lepší použít bloky. Možná pomůže i článek o dědičnosti šablon (nenašel jsem novou verzi).

Raiper34
Člen | 65
+
0
-

Diky, no tie moduly mi neprijdu najidealnejsie, budem muset vymyslet nieco este, ale dik :) Stale pozeram do doku a stale tam vzdy cosi prehliadnem…

Zuben45
Člen | 268
+
0
-

Raiper34 napsal(a):

Diky, no tie moduly mi neprijdu najidealnejsie, budem muset vymyslet nieco este, ale dik :) Stale pozeram do doku a stale tam vzdy cosi prehliadnem…

Pokud to chápu dobře, tak by ti mohlo pomoct, že by jsi v daném presenteru nastavíš blok pro header/menu a ty pak includnes do layout (https://latte.nette.org/cs/tags#…), problém je že to budeš muset nastavit u každého presenteru zvlášť, takže jak už psal David Matějka spíš bych se přikláněl k modulum ;)

Editoval Zuben45 (20. 12. 2015 22:20)

F.Vesely
Člen | 369
+
+2
-

Moduly jsou na tohle nejlepsi, mas proste AdminModule a FrontModule. Kazdy ma vlastni @layout.latte, namespace, slozku, presentery, sablony, … Ted chces mit jen rozdilne hlavicky, ale co kdyz budes chtit zachvili i neco jineho? A co kdyz budes potrebovat dalsi modul? Je lepsi delat veci poradne, aplikaci co nejvice clenit, mit v tom poradek na prvni pohled (struktura, pojmenovani). Ver mi, ono se ti to jednou vrati.