Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] przyjazne url'e z .html na koncu
coolin1986
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 3.03.2008
Skąd: Białoruś

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


Mam prostą stronę opartą o Zend Framework, oraz autorski CMS też w Zendzie. Adres podstron wygląda tak:
www.domena.pl/strona/3450, czyli na koncu jako zmienna GET pobierane jest id.
Chciałbym żeby podstrony były wyświetlane w inny sposób: www.domena.pl/podstrona-pierwsza.html
Przy dodawaniu podstron w cms'ie zrobiłem generowanie przyjaznych url: czyli dla podstrony z id 3450 w bazie jest zapisywany string 'podstrona-pierwsza.html' na podstawie tytułu.
Jak teraz zrobić żeby to działało na front-endzie?

Ten post edytował coolin1986 3.08.2008, 10:17:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Rozwiązaniem jest Zend_Controller_Router_Route_Regex
Go to the top of the page
+Quote Post
coolin1986
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 3.03.2008
Skąd: Białoruś

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


No właśnie znalazłem to, ale nie kumam jak to działa. W przykładzie jest takie coś:
  1. <?php
  2. $route = new Zend_Controller_Router_Route_Regex(
  3. 'blog/archive/(d+)-(.+).html',
  4. 'controller' => 'blog', 
  5. 'action'  => 'view'
  6. ), 
  7. 1 => 'id', 
  8. 2 => 'description'
  9. ),
  10. 'blog/archive/%d-%s.html'
  11. );
  12. $router->addRoute('blogArchive', $route);
  13. ?>
czyli obowiązkowo musi być id?
Jak by ten skrypt wyglądał w moim przypadku? mam controller 'strona', action 'pokaz' i co ma być w kontrollerze? Rozumiem że mamy wyszukiwać stonę nie po ID a po 'description'?
Go to the top of the page
+Quote Post
LBO
post
Post #4





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


  1. <?php
  2. $route = new Zend_Controller_Router_Route_Regex(
  3. '(.+).html',
  4. 'controller' => 'twoj_kontroler', 
  5. 'action'  => 'twoja_akcja'
  6. ), 
  7. 1 => 'nazwa_parametru_z_podstrona', 
  8. ),
  9. '%s.html'
  10. );
  11. $router->addRoute('nazwa_twojej_trasy', $route);
  12. ?>


Poczytaj o wyrażeniach regularnych i zmień '(.+).html' tak, żeby pasowało tylko do liczb, liter i myślnika.
Go to the top of the page
+Quote Post
orideith
post
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 1
Dołączył: 21.07.2006

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


Rozwiązanie możesz znaleźć w wątku, który napisałem na zf-pl http://forum.zend-framework.pl/viewtopic.php?id=396
Pozdrawiam.
Go to the top of the page
+Quote Post

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: 23.12.2025 - 20:17