konto usunięte
Temat: Problem z routerem.
Witam.Usiłuję dogadać się z routerem w ZF1. Chcę osiągnąć taki efekt, że identyfikator języka (pl, en, de) ma być przechowywany jako subdomena. Ponadto będzie jedna wyjątkowa subdomena admin, która wskazuje na inny moduł.
Do tego nad tym wszystkim mają działać przyjazne użytkownikom linki, zdefiniowane z góry jak np.
about.html - index/about
contact.html - index/contact
tak, aby obowiązywały pośród tych domen, czyli otworzy się zarówno strona
de.domain.tld/about.html
jak i:
en.domain.tld/about.html
otworzą tą samą stronę tylko z innym tłumaczeniem.
Problem dotyczy jednak samej konfiguracji routera:
; -- linki od subdomen języka
resources.router.routes.lang.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.lang.route = ":language.free-shoutcast.com"
resources.router.routes.lang.reqs.language= "[a-z]{2}"
resources.router.routes.lang.defaults.language = "de"
resources.router.routes.lang.defaults.controller = "index"
resources.router.routes.lang.defaults.action = "index"
; -- linki od subdomeny admin.
resources.router.routes.admin.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.admin.route = ":admin.free-shoutcast.com"
resources.router.routes.admin.defaults.module = "admin"
resources.router.routes.admin.chains.index.defaults.controller = "index"
resources.router.routes.admin.chains.index.defaults.action = "admin"
resources.router.routes.radio.chains.listen.route = "listen/:station"
resources.router.routes.radio.chains.listen.defaults.controller = "index"
resources.router.routes.radio.chains.listen.defaults.action = "listen"
; -- statyczne strony
resources.router.routes.index.route = "/index.html"
resources.router.routes.index.defaults.controller = "index"
resources.router.routes.index.defaults.action = "index"
resources.router.routes.index.defaults.module = "default"
resources.router.routes.newserver.route = "/neuer-server.html"
resources.router.routes.newserver.defaults.controller = "server"
resources.router.routes.newserver.defaults.action = "create"
resources.router.routes.contact.route = "/kontakt.html"
resources.router.routes.contact.defaults.controller = "index"
resources.router.routes.contact.defaults.action = "contact"
resources.router.routes.ranking.route = "/webradio-ranking.html"
resources.router.routes.ranking.defaults.controller = "ranking"
resources.router.routes.ranking.defaults.action = "index"
No i jakiej kolejności bym wyżej nie zastosował, to coś się krzaczy. To działa admin i jezyki, a nie strony statyczne. To strony statyczne i tłumaczenie, ale admin leży. I tak w kółko. Jakoś nie mogę tego zrozumieć.
Przy obecnej konfiguracji działa panel admina i strony statyczne z domyślnym językiem de, nawet gdy ustawię subdomenę na jakiś inny język.
Ale kiedy przejdę na stronę główną z ustawionym jezykiem: en.domain.tld, to po prostu przekierowuje mnie na domain.tld.
Jak temu zaradzić?
Ponadto router zdaje się, że powinien ustawić zmienną "language", kiedy próbuję się do niej dostać poprzez Plugin kontrollera - dostaję null. Jak się do tego dorwać?
class Stream_Controller_Plugin_SubTranslate extends Zend_Controller_Plugin_Abstract
{
public function routeShutdown(Zend_Controller_Request_Abstract $request)
{
$translate = Zend_Registry::get("Zend_Translate");
$urlLang = $request->getParam('language');
Powyższy $urlLang jest po prostu nullem.Ten post został edytowany przez Autora dnia 24.06.13 o godzinie 18:39