Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Problem aktywnej zakładki w nawigacji
MickDev
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 2
Dołączył: 16.03.2010
Skąd: ~Sanok

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


Witam,

Mam następujący problem i nie wiem jak się do niego zabrać. Otóż, mam poziomą nawigację zrealizowaną na tabs'ach, pozycje zaczytywane są z bazy. Po otworzeniu linka wybrana zakładka powinna mieć ustawioną odpowiednią klasę (active).


Nawigację chcę zamknąć w komponencie. Jednak nie wiem jak:

1. Wykryć aktualną ścieżkę ?

  1. $request->getPathInfo(); // ?


2. Aktualną ścieżkę przekazałbym do komponentu w którym porównywałbym dostępne pozycje z aktualną ścieżką. Jeśli znalazłaby się odpowiednia pozycja ustawiam dla niej klasę active. Dobrze myślę ? Proszę o pomoc.


--------------------
"I tak powiem, bo wylewny jestem"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Quadina
post
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

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


Pobierz sobie swój parametr normalnie metodą klasy sfRequest:
  1. $sf_request->getParameter('nazwa'); // dla index.php?nazwa=xxx

i przekaż ją do komponentu. Swoją drogą komponent chyba też ma dostęp do $sf_request, więc możesz to wykonać już z tamtego poziomu.


--------------------
Warsztat: NetBeans 7.2 Beta, PHP, MySQL, PostgreSQL, Symfony (<=1.4), Diem, Java, Sieci neuronowe
Go to the top of the page
+Quote Post
MickDev
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 2
Dołączył: 16.03.2010
Skąd: ~Sanok

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


Quadina, nie o to chodziło, ale dzięki za odpowiedź.

Może wyjaśnię bardziej szczegółowo. W bazie mam wewnętrzne linki typu:
  1. news/show?id=2
  2. news/show?id=4
  3. page/show?id=3

Te z kolei używam w generowaniu nawigacji poprzez funkcję link_to(), która zamienia taki link np. na page/show/id/2.

Funkcja getPathInfo() zwraca taką ścieżkę jak ta wygenerowana przez link_to(). W związku z czym porównywanie tych dwóch rodzajów ścieżek nie ma sensu.

Podczas przeglądania dokumentacji wpadłem na takie coś:

  1. $routing = sfContext::getInstance()->getRouting();
  2. $Myuri = $routing->getCurrentInternalUri();

Dzięki temu dostaję ścieżkę w tej samej formie co te w bazie. Wszystko działa jak należy dla zwykłego routingu. Problem pojawia się jak routing jest typu sfPropelRoute, bo kiedy "page/1" działa poprawnie po wpisaniu w pole adresu to ta ścieżka użyta w link_to() niekoniecznie. System routingu przekształca ten link na "page/1/action" i dostaję komunikat o braku akcji action.


--------------------
"I tak powiem, bo wylewny jestem"
Go to the top of the page
+Quote Post
Gribo
post
Post #4





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

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


możesz pobrać zamiast adresu nazwę rotingu i na tej podstawie generować menu.


--------------------
Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron.
Go to the top of the page
+Quote Post
Quadina
post
Post #5





Grupa: Zarejestrowani
Postów: 200
Pomógł: 38
Dołączył: 1.12.2010
Skąd: Wrocław

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


Już rozumiem ;-)
sfWebController ma taką funkcję convertUrlStringToParameters() o którą chyba Ci chodzi :-)
  1. sfContext::getInstance()->getController()->convertUrlStringToParameters('link z /'); // zwroci link z ? i =


Dla linków z sfPropelRoute dostaniesz odpowiednio: @route?....

Ten post edytował Quadina 2.12.2010, 19:29:58


--------------------
Warsztat: NetBeans 7.2 Beta, PHP, MySQL, PostgreSQL, Symfony (<=1.4), Diem, Java, Sieci neuronowe
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 19:13