Dědění šablon – include, nebo prázdné blocky?
- Jiří Nápravník
- Člen | 710
Mám dvě šablony (mobilní a desktop verzi), vypisují to hlavní stejně, jenom v té desktop jsou navíc nějaké bloky. Ideální tedy na dědění, ale jak jej vůbec správně použít.
1. mít jako hlavní tu šablonu desktopovou a ty bloky co, nebudou mít v {block} a pak mobilní verzi dědit od dektopové s tím, tže ty bloky nadefinuji jako prázdné. Tedy něco takového?
//desktop.latte
{block main}
tady ten obsah je spolecny
{block reklama}tahle reklama bude jen na desktopu{/}
{/}
//mobile.latte
{layout desktop.latte}
{block reklama}{/}
2. udělat jako hlavní tu mobilní verzi, v které si připravím include pro bloky co budou v desktop. Tedy něco takového
//mobile.latte
{block main}
tady ten obsah je spolecny
{include reklama}
{/}
//desktop.latte
{layout mobile.late}
{block reklama}tady bude reklama pro dektop{/}
Nějak se nejsem schopný rozhodnout úplně, co je správná varianta. Můžete poradit?
- Jiří Nápravník
- Člen | 710
Lukeluha napsal(a):
Úplně nevím proč nevyužít tu stejnou šablonu a pomocí CSS frameworků, popř. media queries skrýt/zobrazit potřebné bloky na tom a tom zařízení?
Proč stahovat mobily, celý sidebar – v kterém je třeba 20 obrázků a spousta dalších zbytečností, který pak schovám.
- Jiří Nápravník
- Člen | 710
@enumag díky za radu, tohle jsem neznal. Ale je to použitelné v případě jednoho bloku, pokud dobře chápu. Těch bloků by takhle bylo více. Sidebar, reklama, případně patička atd. Tak mi jde spíše obecně.
- enumag
- Člen | 2118
@JiříNápravník Ok trochu to rozvedu:
//mobile.latte
{block main}
{block sidebar}...{/block}
{block content}...{/block}
{block footer}...{/block}
{/block}
//desktop.latte
{layout mobile.latte}
{block main}
{include sidebar}
{include content}
{block reklama}...{/block}
{include footer}
{/block}
- Šaman
- Člen | 2659
Názor sice mám, ale zkušenosti s tímhle nikoliv. Vždycky jsem si vystačil s jedinou šablonou a jen se pro mobily některé věci vypustily (a ještě navíc to za mě řeší Bootstrap3).
Pokud jsou ty šablony výrazněji rozdílné (než třeba jen použitím jiného CSS), tak bych asi měl dvě samostatné šablony a obsah bych se snažil dostat do komponent (nebo, v horším případě, do latte bloků uložených v samostatných souborech). Pak máš plnou volnost v tom, jak ty šablony seskládáš (na mobilních mohou být některé důležité bloky výše, než na desktopové šabloně, kde jsou dobře vidět i v sidebaru, nebo v patičce).
Úprava uvnitř komponenty/bloku by tedy šablony neovlivnila a projevila by se na obou. Ale přidání bloku by se muselo provést dvakrát. Ale zase máš pak plnou volnost kam a jestli ho vlastně umístíš.
- Jiří Nápravník
- Člen | 710
@enumag díky za upřesnění, takhle to někde používám, já spíše myslel to s tim include parent, ze jsem neznal. Nicméně oni ty šablony nejsou zrovna snadné v tomhle, tam je někdy reklama uprostřed contentu, a tak bych musel dělat bloky stylem block contentUp, block contentDown apod. Proto jsem se ptal, jeslti je spíše lepší použí placeholdery s include, nebo definovat prázdná block. Nakonec jsem to udělal spíše tak, že jsem si opodmínkoval v šabloně, kdy je mobilní verze, tak ať to nevykresluji.
@Šaman komponenty se mi k tomuhle moc nehodí, protože je to hodně variabilní