Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF]Przekierowywanie funkcją redirector
klapaucius
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam. Przejdę do rzeczy:
w pliku application.ini mam zdefiniowaną następującą tanslację adresu:
Kod
resources.router.routes.stronaglowna.route = "strona-glowna.html"
resources.router.routes.stronaglowna.defaults.controller = "index"
resources.router.routes.stronaglowna.defaults.acion = "index"


I teraz z pewnej jakiejś tam akcji chcę zrobić przekierowanie na stronę główną. I moje pytanie brzmi jak to zrobić, aby przekierowywało mi ładnie na adres moj-projekt/public/strona-glowna.html

Bo jeśli robię to przekierowanie w sposób następujący:
  1. $this->_helper->redirector('index', 'index');

To otrzymuję przekierowanie na adres moj-projekt/public/index/index
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
klapaucius
post
Post #2





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


No tak. Masz w pełni rację.
Ale jak we wcześniejszym poście napisałeś, jeśli chcę zrobić przekierowanie za pomocą $this->_redirect('strona-glowna.html');, to jako parametr tej metody nie podaję nazwy reguły translacji (w moim przypadku miałaby ona nazwe "stronaglowna") ani też nazwy akcji czy kontrolera, ale bezpośredni, zewnętrzny adres url (strona-glowna.html). I mój problem polega na tym, jak uzyskać dostęp do tego zewnetrzenego adresu(strona-glowna.html), podając funkcji przekierywującej jedynie nazwę translacji(stronaglowna).

Jeśli jest to ciągle niezrozumiałe o co mi chodzi, to może zapytam jeszcze o coś innego:

Robię sobie takie przekierowanie:
  1. $this->redirect($this->view->url(array(), 'stronaglowna'));

Jednak wtedy błędnie przekierowuje mnie, gdyż zostaję przerzucony na stronę o adresie: moj-projekt/public/moj-projekt/public/strona-glowna.html.
Jak więc zrobić, aby przekierowywało mnie poprawnie?

(tak jak wcześniej pokazałem, można użyć funkcji basename(), która z wartości zwracanej przez funkcję url pozostawia jedynie samą cząstkę "strona-glowna.html", ale nie sprawdzi się to w przypadku, jeśli moj adres w regule translacji bedzie mial wartosc powiedzmy "costam/costam/strona-glowna.html" - bo wtedy usunie wszystkie slash'e".

Jeśli piszę za bardzo chaotycznie to przepraszam, inaczej nie potrafie. Mam nadzieje ze sie połapiecie o co mi chodzi : )

@edit

Dobra uporałem się z tym. Jeśli kogoś interesuje jak:
  1. $this->_redirector = $this->_helper->getHelper('Redirector');
  2. $this->_redirector->gotoRoute(array(), 'stronaglowna');


Dziękuję, pozdrawiam! : )

Ten post edytował klapaucius 31.03.2013, 00:08:36
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 16:14