Chciałbym żeby w podstawowym layoucie menu było generowane z tabelki w bazie, jak menu wygenerować wiem, ale gdzie "wkleić" ten kod żebym nie musiał go powielać co podstronę?
public function actions()
{
}
Tutaj?
Chciałbym żeby w podstawowym layoucie menu było generowane z tabelki w bazie, jak menu wygenerować wiem, ale gdzie "wkleić" ten kod żebym nie musiał go powielać co podstronę?
public function actions()
{
}
Tutaj?
Nie bardzo. Funkcja którą podałeś, zwraca listę akcji zdefiniowanych w innych kontrolerach - bardzo rzadko się z tego korzysta. Rozwiązaniem Twojego problemu może być albo prywatna funkcja, która będzie przygotowywała dane do menu i tą funkcję będziesz musiał w każdej akcji wywołać (albo na przykład w funkcji init). Pamiętaj jednak, jeżeli Twoja aplikacja się rozrośnie i dołożysz drugi kontroler, to będziesz musiał ten sam kod wkleić do drugiej klasy. Na szczęście autorzy Yii pomyśleli o takiej sytuacji i wprowadzili widgety. Twoje menu powinno być właśnie widgetem który będzie pobierał, przetwarzał dane i generował odpowiedni html.
Do przeczytania:
http://www.yiiframew…ics.view#widget
http://www.yiiframew…api/1.1/CWidget
http://www.yiiframew…c/api/1.1/CMenu
Ten ostatni link prowadzi do dokumentacji klasy CMenu, który jest widgetem idealnym do rozszerzenia dla Twoich celów.