Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [cakephp] generowanie menu w cakephp
woj_tas
post 17.09.2007, 12:40:34
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


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
vezyr
post 17.09.2007, 18:27:01
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:
  1. <?php
  2. class AppController extends Controller {
  3.  
  4. function beforeFilter()
  5. {
  6.  
  7. }
  8. }
  9. ?>

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:
  1. <?php
  2. parent::beforeFilter();
  3. ?>

Pozdrawiam.
Go to the top of the page
+Quote Post
wojtek.zielinski
post 12.12.2007, 00:56:20
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 smile.gif


--------------------
Wojtek Zieliński
http://www.zielinscy.pl
php portale cms
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:55