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
Cieslix
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.03.2013

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


jeśli jesteś w danej akcji kontrolera, to spokojnie możesz użyć:

  1. $this->_redirect('strona-glowna.html');
Go to the top of the page
+Quote Post
klapaucius
post
Post #3





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

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


Cytat(Cieslix @ 30.03.2013, 12:38:05 ) *
jeśli jesteś w danej akcji kontrolera, to spokojnie możesz użyć:

  1. $this->_redirect('strona-glowna.html');

No dobrze, a co w przypadku gdy będę chciał zmienić coś w pliku application.ini, np. adres zewnętrzny z 'strona-glowna.html' na 'inna-nazwa.html'?
Wtedy jak mniemam, będę musiał w każdym pliku (gdzie tylko użyłem przekierowania) zmieniać nawe adresu, a to jednak nie o to chodzi. Po to używam frameworka, aby mieć wszystko z automatu : )

Teraz jednak mnie olśniło by zrobić taką sztuczkę:
  1. $adres = $this->view->url(array(), 'stronaglowna'); ///ustalamy adres na podstawie funkcji url widoku, podając regułę translacji
  2. $baseName = basename($adres); ////pobieramy samą nazwę adresu zewnętrznego
  3. $this->redirect($baseName); ///robimy przekierowanie

I nawet działa to : ) Waszym zdaniem rowziązanie to jest optymalne, czy istnieje jakiś prostrzy sposób?

@edit2:
Doszedłem do wniosku jednak, że rozwiązanie to nie jest do końca dobre, gdyż nie będzie działać w przypadku adresu zewnętrznego podobnego np. do tego: "folder/strony/glownastrona.html", bo wtedy funkcja basename usunie mi wszystkie slash'e i zostanie mi tylko nazwa "glownastrona.html"

Ten post edytował klapaucius 30.03.2013, 13:42:39
Go to the top of the page
+Quote Post
Cieslix
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.03.2013

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


Cytat(klapaucius @ 30.03.2013, 13:38:39 ) *
No dobrze, a co w przypadku gdy będę chciał zmienić coś w pliku application.ini, np. adres zewnętrzny z 'strona-glowna.html' na 'inna-nazwa.html'?
Wtedy jak mniemam, będę musiał w każdym pliku (gdzie tylko użyłem przekierowania) zmieniać nawe adresu, a to jednak nie o to chodzi. Po to używam frameworka, aby mieć wszystko z automatu : )


trochę Ciebie nie rozumiem
jak masz taki routing ustawiony:
  1. resources.router.routes.stronaglowna.route = "/strona-glowna.html"
  2. resources.router.routes.stronaglowna.defaults.controller = "index"
  3. resources.router.routes.stronaglowna.defaults.acion = "index"


i ustalasz sobie wszystkie linki następująco:

  1. $this->view->url(array(), 'stronaglowna');


jak będziesz chciał zmienić adres strony głównej to w application.ini zmieniasz
  1. resources.router.routes.stronaglowna.route = "/strona-glowna.html"
  2. resources.router.routes.stronaglowna.defaults.controller = "innykontroler"
  3. resources.router.routes.stronaglowna.defaults.acion = "innaakcja"


ja przynajmniej w taki sposób routing używam
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 - 01:48