Opakování některých částí layoutu
- Jiří Nápravník
- Člen | 710
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
rozhodne jako mensi komponenty. obalit je pak pripadne jednou komponentou „sidebar“ uz by nebyl problem..
- Jiří Nápravník
- Člen | 710
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
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
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 :)
- Pavel Macháň
- Člen | 282
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 :)