Podsablona v internetovem obchode

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

Ahoj,

snazim se napsat podsablonu, ale nikde na to nemuzu najit pekne reseni.. Podsablonou myslim trebas vypis polozek v internetovem obchode – kde jsou zobrazovany na hlavni strance, ve vypisu zbozi a jeste trebas ve seznamu koupenych polozek.. Proste na ruznych mistech stejna sablona.. Mohli by jste mi prosim pomoct? Dekuji

mkoubik
Člen | 728
+
0
-

Na to bude asi nejlepší použít komponentu https://doc.nette.org/…n/components

neznalek
Člen | 60
+
0
-

No asi tomu nerozumim jak to mam na to pouzit..

JakubJarabica
Gold Partner | 184
+
0
-

Pozri si príklady existujúcich komponent v addons.

V princípe by bolo fajn, keby v presenteri tej komponente poskytneš nejaké datasource(v závislosti na zložitosti napr. už hotové pole, prípadne dibifluent(tu je možnosť jednoducho aplikovať dodatočné filtrovanie alebo triedenie v komponente), …).

O všetko ostatné sa postará komponenta sama. Vytvorenie šablóny, predanie dát. Naviac k tomu môžeš prirobiť napríklad VisualPaginator ako podkomponentu tejto komponenty.

Bude to celé pekne napísané podľa DRY.

V šablóne viewu v presenteri, kde sa to zobrazí zavoláš len {control nazov_komponenty}.

Ak chceš ísť ďalej, môžeš v šablóne následne obaliť {control nazov_komponenty}. makrom {cache} a pokiaľ komponentu budeš vytvárať lazy loadingom(továrničkou), ušetríš tak pár prípadných SQL dotazov(len 2ma dodatočnými riadkami v šablóne viewu). Treba potom prirobiť logiku na invalidovanie tejto šablónovej cache – napr. na základe tagu, ale toto osobne považujem za jednu z veľkych výhod Nette, s ktorými mám len dobré skúsenosti :).

Ani
Člen | 226
+
0
-

Jestli ti jde pouze o šablonu bez nějaké logiky, tak tam můžeš použít tohle https://latte.nette.org/cs/tags#…

neznalek
Člen | 60
+
0
-

Jo super uz takhel to ma fungovat dekuji :)

neznalek
Člen | 60
+
0
-

No narazil jsem na problem s paginatorem.. Adresa stranky paginatoru se mi generuje ve forme:
?demandList-dp-page=2.

Kde demandList list je seznam inzeratu (muj control), a dp-page je paginator..

Ak chceš ísť ďalej, môžeš v šablóne následne obaliť {control nazov_komponenty}. makrom {cache} a pokiaľ komponentu budeš vytvárať lazy loadingom(továrničkou), ušetríš tak pár prípadných SQL dotazov(len 2ma dodatočnými riadkami v šablóne viewu). Treba potom prirobiť logiku na invalidovanie tejto šablónovej cache – napr. na základe tagu, ale toto osobne považujem za jednu z veľkych výhod Nette, s ktorými mám len dobré skúsenosti :).

Mohl bys mi prosim toto trosku vysvetlit, nebo odkaza na nejaky clanek diky :)

Editoval neznalek (8. 4. 2011 21:40)