![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, zacząłem pisać CMS oparty o "ciastko" i mam pewien problem, chcę zrobić dynamiczny boczny panel, dane mają być pobierane z bazy mysql, tak żeby w każdej chwili można było dodać dodatkowy panel, usunąć, zmienić.
Po prostu nie wiem jak to zaimplementować w kodzie żeby był widoczny na każdej podstronie. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 8 Dołączył: 10.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja w swoim CMSie mam tak że wszystkie Controllery dziedziczą po Controller_Main i jeżeli chciałbym uzyskać taki efekt to zbudowałbym widok w Mainie i miałbym w każdym Controllerze ten panel, oczywiście to można fajnie rozbudować, ja mam tak że jeżeli $buildTemplate = TRUE; to cały widok buduje mi się w Mainie (Tylko nie wysyłam danych do zmiennej content aby potem w controllerze sobie ustawić to co chcę), a jeżeli FALSE to sam w kontrolerze sobie wszystko buduje
![]() Z tym że ja robie w Kohana Ten post edytował Damiankossek 11.02.2011, 12:16:27 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 77 Pomógł: 10 Dołączył: 4.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
W Cake to będzie coś takiego:
Tworzysz AppController w app/controllers/ (http://book.cakephp.org/view/957/The-App-Controller), deklarujesz żeby korzystał z odpowiedniego modelu który odpowiada za obsługę bocznego panelu (np. public $uses = array('Sidebars'); ), w jego metodzie beforeFilter() ustawiasz zmienne dla widoku (np. $this->set('sidebar', $this->Sidebar->find('first')); ) i w layoucie/widokach dodajesz szablon bocznego panelu jako element (np. echo $this->element('sidebar', array('sidebar' => $sidebar')); patrz tez http://book.cakephp.org/view/1081/Elements) Pamiętaj, że skoro poszczególne kontrolery dziedziczą po klasie AppController, to ich właściwości i metody nadpisują te rodzica, korzystaj z konstrukcji parent:: |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 10:43 |