![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 36 Dołączył: 31.03.2006 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Chciałbym sie was spytać jak generujecie menu w CakePhp. W starym, napisanym przez siebie "Framework-u" generowałem je dla każdego id tak samo, tzn: przyjmowalem jako parametr wejsciowy id, sprawdzałem czy jest w bazie i jezeli jest generowałem menu z zaznaczeniem aktualnej zakladki. Jeżeli miałem przyjazne urle, robilem to samo (wczesniej zamieniałem tylko urla na id). Wszystko to (pobieranie id, zamiana z urla itp) robiłem tak jakby "globalnie", tzn mialem strone podzielona na "controler" i "widok" ale menu generowałem poza nimi. Zaletą było to ze kod z generowania menu nie musialem wklejac w kazdego controlera. Wobec tego moje pytanie brzmi: jak wygenerować menu w CakePhp własnie tak aby nie trzeba było wklejac kodu do pobierania menu do każdego controlera? pozdrawiam -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 3 Dołączył: 12.06.2007 Skąd: Głogów Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jeżeli nie chcesz wklejać kodu do pobierania menu do każdego kontrolera, może wstaw go do metody beforeFilter ogólnego AppControllera? Stwórz w /app plik o nazwie app_controller.php o takim kodzie:
Metoda beforeFilter jest wykonywana przed wykonaniem żądanej metody kontrolera, a ponieważ każdy kontroler dziedziczy po AppController, masz gwarancję, że Twoje menu zostanie wygenerowane zanim zostanie wykonana żadana przez użytkownika metoda i "wygenerowany" widok. Należy tylko pamiętać, że jeżeli chcemy stworzyć metodę beforeFilter w jakimś kontrolerze (przeciążyć ją), wywołać w jej kodzie metodę z klasy - rodzica:
Pozdrawiam. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 19.12.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Miałem ostatnio podobny problem - ten post rozwiał wszelkie moje wątpliwości co do rozwiązania
![]() -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 16:55 |