Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Wilojezycznosc aplikacji
Forum PHP.pl > Forum > PHP > Frameworki
terabit
Witam,
od ponad godziny kombinuje i coś mi to nie wychodzi...

chcę by adres mojej aplikacji wyglądał w taki sposób: adres.com/język/reszta_z_zf

chce by byla to dwu znakowa wartosc, np. pl, en...
w aplikacji przez zwykły warunek chce sprawdzać jaki jest jezyk i pobierać odpowiednie dane z bazy.

Prościej byłoby przez cookie lub sesje ale niestety nie chce problemów wyszukiwarkami...


ma ktoś jakiś pomysł?
sweter
Ale dlaczego ma być adres.com/język/reszta_z_zf, a nie adres.com/reszta_z_zf/język?
Z tego co wiem to wyszukiwarki nie bardzo patrzą na kolejność słów kluczowych w adresach.
Poza tym niedługo sam będę musiał zrobić stronę wielojęzykową, więc wybiorę ten sposób, ale jeżeli któryś z forumowiczów zna ciekawsze rozwiązanie to z chęcią je również poznam smile.gif
melkorm
Cytat
ma ktoś jakiś pomysł?

w routerze
Kod
:lang/:module/:controller/:action


I jak default pl.

Tylko z navigation jest problem bo resetuje przy np. en więc trzeba przeliterować i ustawić poprawny język.
terabit
Cytat(melkorm @ 4.12.2010, 01:23:23 ) *
w routerze
Kod
:lang/:module/:controller/:action


I jak default pl.

Tylko z navigation jest problem bo resetuje przy np. en więc trzeba przeliterować i ustawić poprawny język.


tylko gdzie moge zmienic ustawienia routera?
musze jakas dodatkowa klase stworzyc z ustawieniami?

sorry za pytania ale w zf jestem nowy winksmiley.jpg


z tego co wyczytałem musze w bootstrapie stworzyć coś takiego:
  1. $frontController->getRouter()->addRoute(
  2. 'default',
  3. new Zend_Controller_Router_Route(
  4. '/:lang/:controller/:action/*',
  5. 'lang' => 'pl',
  6. 'controller' => 'index',
  7. 'action' => 'index'
  8. )));


oraz stworzyć plik routes.ini w application/configs:
  1. resources.router.routes.default.route = ":lang/:controller/:action/:action"
  2. resources.router.routes.default.type = "Zend_Controller_Router_Route"
  3. ;resources.router.routes.default.defaults.module = default
  4. resources.router.routes.default.defaults.controller = index
  5. resources.router.routes.default.defaults.action = index


ale i tak mi to nie działa...

nikt nie ma pomysłu jak to zrobić? winksmiley.jpg
melkorm
Router definiujesz w configu lub ręcznie w PHP ty zrobiłeś to tu i tu winksmiley.jpg

I musisz wyczyścić (w przypadku nadpisywania default'owego routera) uprzednio zdefiniowane routery, jest funkcja.

P.S. czym objawia się owe nie działanie?
terabit
Moj bootstrap wyglada tak:
na pewno coś jest namieszanie bo jak wywalę tą funkcje to wszystko działa standardowo a ja wszystko to zostawie to po wlaczeniu katalogu public wyswietla sie tylko biale tlo, poprostu pustki winksmiley.jpg

  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3. protected function _initAutoload()
  4. {
  5. $frontController->getRouter()->addRoute(
  6. 'default',
  7. new Zend_Controller_Router_Route(
  8. '/:controller/:action/*',
  9. 'controller' => 'index',
  10. 'action' => 'index'
  11. )));
  12. }
  13. }


tak jak już wspominałem, wszystko ma być standardowo tylko przed kontrolerem i akcjami ma byc dwu literowy skrót jezyka,

zastanawiam się jak później poprawie to stosować...

pomoże ktoś? winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.