Ruzne latte sablony dle domeny ze ktere pristupuju

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

Dobry den,

jsem uplny zacatecnik a chtel bych se zeptat jak nastavovat odlisne latte sablony aplikace podle domeny, ze ktere na ni pristupuji. Jedna se o to, ze bych chtel mit jednu aplikaci pro x domen, kde kazda se bude lisit jenom ve vizualizaci. Data budou stejna pro vsechny domeny. Zkousel jsem si cist neco o routovani, ale tam se da odkazat pouze na presenter a jeho akci nebo view a i tak jsem z toho moc chytry nebyl.

Predem diky za jakoukoliv odpoved

esorimer
Člen | 114
+
0
-

Zdravím,
já načítám různé šablony podle jazyka a používám k tomu přetíženou metodu setView, kterou jsem dal do BasePresenteru:

<?php
    /**
     * Add prefix for language to view, i.e. 'default.cs' for 'default' view and cs language.
     * @param string $view View name, i.e. 'default'
     */
    public function setView($view = 'default') {
        $lang = $this->getLang();
		$presenter = $this->request->getPresenterName();
		$file = __DIR__.'/../templates/'.$presenter.'/'.$view.'.'.$lang.'.latte';

		if(file_exists($file)) {
            parent::setView($view . '.'.$lang);
        } else {
            parent::setView($view);
		}
    }
?>

Ty by jsi se ve funkci setView mohl rozhodovat na základě nějakého parametru umístěného v config.neon (který můžeš/měl bys/ mít pro kažodu doménu jiný).

Ikdyž v tvém případě by asi bylo lepší mít možnost nastavit v config.neon adresář(e), kde se budou hledat template soubory, což ale nevím, jestli jde (třeba poradí někdo zkušenější)…

h4kuna
Backer | 740
+
0
-

TheOtherGuy napsal(a):

Predem diky za jakoukoliv odpoved

$route = new Route('//<domain>/<presenter>/<action>', '...');

v presenteru si nastav persistentní vlastnost $domain a podle ni pak změn logiku, přetiž si třeba setView.

h4kuna
Backer | 740
+
0
-

esorimer napsal(a):
Ikdyž v tvém případě by asi bylo lepší mít možnost nastavit v config.neon adresář(e), kde se budou hledat template soubory, což ale nevím, jestli jde (třeba poradí někdo zkušenější)…

Jazykové mutace mít ve vlastních souborech, je řešení, ale je tu k dispozici několik překladačů gettext-latte výhodou je rychlost nebo GettextTranslator

Editoval h4kuna (16. 4. 2013 10:25)

TheOtherGuy
Člen | 27
+
0
-

h4kuna napsal(a):

TheOtherGuy napsal(a):

Predem diky za jakoukoliv odpoved

$route = new Route('//<domain>/<presenter>/<action>', '...');

v presenteru si nastav persistentní vlastnost $domain a podle ni pak změn logiku, přetiž si třeba setView.

Super mockrat dekuju, vyzkousim :)

esorimer
Člen | 114
+
0
-

h4kuna napsal(a):

Jazykové mutace mít ve vlastních souborech, je řešení, ale je tu k dispozici několik překladačů gettext-latte výhodou je rychlost nebo GettextTranslator

jj, díky za info, GettextTranslator taky používám (na překlad formulářů, titulků atp.), setView používám v případě kdy je v template 90% jen text (statické stránky)