Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF]Sposób na wiele layoutów
d3ut3r
post
Post #1





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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 ?

Ten post edytował d3ut3r 30.05.2012, 03:46:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Fluke
post
Post #2





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 20.09.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:00