Opakování některých částí layoutu

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
-

Jak vyřešit pokud mám pravý sloupec a ten mám třeba stejný na třech místech? Nejde pouze o textové informace (to bych použil include), ale tahám tam věci z datbáze – nejčtenější články, nejmkomentovanější články. Jak na to?

Napadlo mě asi že nejlepší bude jít na to přes komponenty. Ale je lepší několik menších komponent (nejkomentovanější články, nejčtenější články) a pak si je volat v šablonách. Anebo naopak udělat jednu velkou komponentu sidebar?

Případně je nějaký jiný lepší přístup?

David Matějka
Moderator | 6445
+
0
-

rozhodne jako mensi komponenty. obalit je pak pripadne jednou komponentou „sidebar“ uz by nebyl problem..

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

A jsou vůbec takové malé komponenty – která pošle jeden dotaz do databáze a vykreslí – správný přístup? Já měl za to, že komponenty mají být komplexní se signály atd.

Oli
Člen | 1215
+
0
-

Komponenty chápu jako řešení jednoho problému, kterej se vyskytuje na více místech (víc presenterech).

Takže například pokud mám kalendář a je jen jeden, kterej zobrazuje všechny události, tak ho udělám jako presenter. Pokud ale každej objekt (novinky, akce, …) nějakým způsobem pracuje s kalendářem, tak to řeším jako komponentu.

U tvého prvního dotazu naprosto souhlasím s matej21

David Matějka
Moderator | 6445
+
0
-

Komponenty muzou byt naprosto primitivni a vykreslovat treba staticky obsah, nebo muzou byt slozity se spoustou parametru, signalu, podkomponent a ruznych pohledu. To je uplne jedno. Kdyz presunes nejaky kod z presenteru/sablony a vytvoris z toho znovupouzitelnou komponentu, snad nikdy neudelas chybu :)

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

ok, díky za upřesnění nebudu se tedy bát ani primitivních komponent:-)

Pavel Macháň
Člen | 282
+
0
-

Jiří Nápravník napsal(a):

ok, díky za upřesnění nebudu se tedy bát ani primitivních komponent:-)

Často je využívám třeba u stromového menu (kategorie, subkategorie atd) kde musí proběhnout velká hromada selectů. Krásně si takhle můžu obalit render metodu do html cache :)