Jak na vice volitelnych sablon?
- tomasnikl
- Člen | 137
Ahoj,
chci se Vas zeptat, jak by se resilo to, kdybych chtel mit na webu vice sablon (vzhledu) a vzdy pouzivat jen jeden.
Ma predstava byla asi takova, ze bych mel takovouto strukturu:
app/templates/XXX/jednotlive_salobny.latte
Kde by misto XXX byl vzdy nazev nejake sablony (pro pochopeni napr: default, blue_web, red_web…) Vzhledem k tomu, ze by jednotlive vzhledy mely ruzne usporadani html, tak by nebylo mozne nacitat jen jine styly..
Jak takovyto problem resit? Nebo spise, kde definovat, ze sablony se nemaji nacitat z
app/templates/sablona.latte
ale z:
app/templates/AKTUALNI_VZHLED/sablona.latte
Dekuji za tipy.
Tom
- tomasnikl
- Člen | 137
to zjisteni defaultniho vzhledu (XXX) budu resit v basepresenteru, spise mi slo o to, jak pote definovat tu cestu k sablonam.
Diky za info, okouknu zminovane a vyzkousim.
Ted mi jeste doslo, ze vlastne kazdy vzhled muze mit jine styly a jine obrazky. Styly a obrazky ukladam do www/images a www/js, takze jsou vpodstate oddelene od latte sablon.. kdyz tedy budu chtit pouzit jiny vzhled, mel bych udelat jeste neco takoveho:
www/XXX/js/
www/XXX/images/
app/templates/XXX/
idealni by tedy bylo, aby cely vzhled byl v jedne slozce i s obrazky a styly.. ale nevim jestli je vhodne davat obrazky a styly do app/templates/XXX/ a pote je i z teto slozky nacitat na webu.. co myslite? davat styly do www slozky nebo pro zjednoduseni davat styly a obrazky do app/templates/XXX?
- hAssassin
- Člen | 293
@tomasnikl > no davat styly, skripty (JS) a
obrazky do app/
je nesmysl. Protoze, pokud mas vychozi nastaveni,
tak ti je to jednoduse nenatahne, jelikoz do vsech slozek krome
www/
je pristup pres prohlizec zakazany v .htaccess (a to bych
rozhodne nemenil). Spis bych to nechal tak jak mas napsany vyse. Resp bych tu
strukturu videl asi takhle:
- app/
- presenters/
ErrorPresenter.php
HomepagePresenter.php
SignPresenter.php
- templates/
- XXX/
- Homepage/
default.latte
blabla.latte
- Sign/
in.latte
out.latte
lostPassword.latte
@layout.latte
- YYY/
- Homepage/
default.latte
blabla.latte
- Sign/
in.latte
out.latte
lostPassword.latte
@layout.latte
- www/
- XXX/
- css/
- js/
- images/
- YYY/
- css/
- js/
- images/
To XXX/
a YYY/
jsou ty tvoje magicky slozky.
K sablonam se dostanes po prepsani tech dvou metod Presenteru
jak
sem psal vyse.
A jak se dostat k tem souboru do slozky www/
? Asi bych to
udelal tak, ze do sablon se predava promenna $baseUrl
a
$baseUri
(ted nevim jestli obe nebo jen jedna jelikoz se to trochu
menilo). Takze bych jednoduse jen upravil tu $baseUrl
tak, ze bych
k ni pridal nakonec nazev ty XXX
slozky a v sablonach pouzival
stejne.
Pokud by rozlozeni vlastniho layoutu webu bylo pro vsechny XXX
varianty stejny, tak by @layout.latte
mohl byt jen jeden primo ve
slozce templates/
. Ale to uz je na tobe.
- smasty
- Člen | 90
Predáva sa premenná ‚$baseUrl‘, kvôli spätnej kompatibilite funguje
aj $baseUri
. Okrem toho by bolo treba ešte zmeniť premennú
$basePath
, ktorá obsahuje cestu relatívne k root
(teda bez ‚http://domena.tld‘).
Ja by som zase skôr odporučil definovať si nejakú vlastnú pemennú,
napr. $templatePrefix
(niekde v
BasePresenter::createTemplate
alebo
BasePresenter::beforeRender
) a používal tú. Pretože
$basePath
a spol. sa ti zídu aj mimo nahrávania CSS a JS.
class BasePresenter extends Nette\Application\UI\Presenter {
protected function beforeRender(){
$this->template->templatePrefix = $this->templateStyle;
}
}
A v šablóne:
<script src="/{$basePath}/{$templatePrefix}/js/script.js"></script>