Nová adresa a původní aplikace – směrování

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

Ahoj, mám jednu nette aplikaci která běží na nějaké adrese mujweb.cz. Teď ale vznikl požadavek, že se udělá jedna stránka která bude mít adresu mujweb2.cz a bude to vlastně skoro to samé co původní app, jen bude osekaná o nějaké položky a bude mít jiný layout, nicméně bude používat hodně funkcí původní stránky a stejnou db. Na starém webu bude i odkaz na tuto novou stránku.

Řeším jak to udělat čistě – zatím mě napadlo následující řešení:

Směrovat novou adresu mujweb2.cz na původní adresu mujweb.cz (ale přitom v url bude ta nová adresa) a v presenteru mít (třeba v startup metodě) test $_SERVER[‚HTTP_HOST‘] == ‚mujweb2.cz‘ → $this->setView(‚mujweb2‘);

Toto jsem vyzkoušel na localu a funguje vše co potřebuji (metoda renderMujweb2, předání prom. do template i nastavení {layout …latte}).

Ale nefunguje samozřejmě actionMujweb2 a taky nevím, zda je toto čisté řešení.A samozřejmě asi nepůjde používat na starém webu odkazy na nový web pomocí {link :…} ale bude se muset dávat nová adresa – i když to už by mi tak nevadilo…

Existuje jiný-lepší postup jak zprovoznit novou adresu která bude používat základy starého webu, ale jiný layout atd? Díky

Felix
Nette Core | 1247
+
0
-

Podle me by jsi mel udelat nejakou sluzbu, treba LayoutManager/LayoutService. Ktera bude akceptovat Nette\Http\Request a bude ti vracet na getApplication nebo getLayout. O jakou aplikaci jde. A uz je na tobe, jestli budes mit stejne presentery, pripadne stejne akce. Nebo 1 presenter a 2 akce (actionOne, actionTwo).

Urcite by melo byt tohle cistejsi nez to resit na urovni presenteru ve startup metode.


Pokud potrebujes zmenit action podle sablony, tak muzes vyuzit $presenter->changeAction('mujweb2').

https://api.nette.org/…esenter.html#…