Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF]Sposób na wiele layoutów
Forum PHP.pl > Forum > PHP > Frameworki
d3ut3r
Mój projekt zakłada wykorzystanie 4 różnych layoutów:

1 - strona głowna
2 - podstrony
3 - panel logowania admina
4 - podstrony panelu admina

Rozwiązałem to w następujący sposób, domyślnym layoutem jest layout podstrony( nr 2) teraz w kontrolerze index w akcji index napisałem:

  1. $layout = Zend_Layout::getMvcInstance();
  2. $layout->setLayout('mainstart');


w ten sposób mam na stronie głównej inny layout niż na podstronach, jeżeli o admina chodzi to dodałem plugin:

  1. class My_Controller_Plugin_Lay extends Zend_Controller_Plugin_Abstract{
  2.  
  3. public function preDispatch(Zend_Controller_Request_Abstract $request){
  4.  
  5. $module=$request->getModuleName();
  6.  
  7. if ($module=='admin'){
  8.  
  9. $layout = Zend_Layout::getMvcInstance();
  10. $layout->setLayout('adminPage');
  11.  
  12. }
  13.  
  14. }
  15. }


czyli jeżeli modułem jest 'admin' to zostaje wczytany layout podstrony admina, panel logowania natomiast ma ustawiony layout w kontrolerze.

Moje pytanie czy to nie jest zbyt skomplikowane ? być może istnieje jakaś prostsza metoda tylko o niej nie wiem smile.gif starałem się szukać informacji na ten temat co doprowadziło mnie do wypracowania rozwiązania jak powyżej. Co o tym sądzicie ?
Fluke
Mnie się wydaje, że to jest niedopracowanie przez inżynierów Zend'a. Tak samo jak bootstrap, do każdego modułu powinien się sam indywidualnie ładować a ewentualnie dodawać jakieś globalne bootstrapy, które zawsze się ładują, w każdym module. W bootstrapie można by wtedy problem layoutów rozwiązać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.