Opakované vypisy v template – block, komponenta?

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

Vypisuji seznam článku, strukturově je to pořád stejné, jen je to jednou v renderu pro kategorii, jednou ve vyhledani, apod.

Jak to vykreselni nejlepe resit?

  1. Komponenta, kterou v zavolám {control articleList $articles}
  2. nadefinuju si v layoutu block, ktery includuju na dané místo

Nebo ještě nějak jinak?

MartinitCZ
Člen | 580
+
0
-

Za mě 1., tedy Komponenta ;)

Tomáš Votruba
Moderator | 1114
+
0
-

Z duvodu znovupouziti a spravu na jednom miste 1. komponenta.

Pri includovani latte snippetu navic musis vedet, kde se snippet nachazi. Komponenta se vsude renderuje stejne.

Jake vyhody te napadaji pro 2.?

Jiří Nápravník
Člen | 710
+
0
-

Kupodivu zrovna to lepší znovupoužití. Konkrétně proto, že podle mě tohle je řešení pro konkrétní aplikaci/layout. Když pak budu chtít podobné řešení použít v jiné aplikaci, tak bych musel předělávat šablonu komponenty. Když použiju řešení dva, tak to změním v layoutu, který stejně budu měnit u dané aplikace.

a pokud se nemýlím, tak kdybych použil řešení {control articleList $articles} tak mám problém se snippety, a musel bych tu komponentu plnit v presenteru, aby to fungovalo.

Ale pokud jste se shodli dva, tak asi tedy taky zvolim tu komponentu:-)

Editoval Jiří Nápravník (10. 4. 2014 19:43)

akadlec
Člen | 1326
+
0
-

@Jiří Nápravník:
Kupodivu zrovna to lepší znovupoužití. Konkrétně proto, že podle mě tohle je řešení pro konkrétní aplikaci/layout.

Máš namysli že šablony komponenty máš někde u nich a šablony appky tak jinde? Neuvažoval si o tom že si budeš dávat do appky i šablony komponent? Třeba tak že když se komponenta renderuje tak se prvně podívá do šablon appky zda tam není šablona pro ní a pokud ne tak šáhne k sobě?

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Přenášet pro aplikaci specifickou komponentu jinam asi opravdu nedává smysl. Jinak ale jednoznačně doporučuju napsat komponentu. Pokud se má vykreslovat více způsoby, můžete k tomu otestovat tento doplněk, který řeší nekompatibilitu více vykreslovacích módů komponent s Ajaxem.

Jiří Nápravník
Člen | 710
+
0
-

akadlec: jj, k tomu jsem taky dospel, ze budu mit nejaky vychozi a paks e podivam, ejslti neni nejaka jina cest nastavena treba appmodule

vojtech.dobes: to vypadá dobře, díky za tip. Nicméně tentokrát jsem zatím zvolil nastavení „zvenku“, přijde mi to čistší, ale tohle se určitě taky hodí někdy.

Edit: I když teď jak na to koukám, tak tohle řeší něco trochu jinýho a to je jinou renderMetodu to asi nijak neřeší, to, když tam chci předat argument, pro render metodu ne?

Editoval Jiří Nápravník (11. 4. 2014 14:32)