Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework][ZF2][ZendFramework2] layouty w modułach
Forum PHP.pl > Forum > PHP > Frameworki
umatik
Mam 3 moduły: Application, Testy, Uzytkownicy
W każdym z nich w widokach dostępne są layouty a w pliku module.config.php:

  1. 'view_manager' => array(
  2. 'template_path_stack' => array(
  3. 'NAZWA_MODUŁU' => __DIR__ . '/../view',
  4. ),
  5. 'not_found_template' => 'error/404',
  6. 'exception_template' => 'error/index',
  7. 'template_map' => array(
  8. 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
  9. 'error/404' => __DIR__ . '/../view/error/404.phtml',
  10. ),
  11. 'strategies' => array(
  12. 'ViewJsonStrategy',
  13. ),
  14. ),


Powinno być tak że:

localhost/public/application - pokazuje layout dla aplikacji
localhost/public/testy - pokazuje layout dla testów
localhost/public/uzytkownicy - pokazuje layout dla użytkowników

Niestety tak nie jest, zawsze pokazuje się layout dla modułu Testy.
Ponadto
localhost/public/application - nie ładuje widoku
localhost/public/uzytkownicy pomimo poprawnego routingu pojawia się monit:

An error occurred
An error occurred during execution; please try again later.



chemiqs
Nie jestem expertem w Zend ale o ile mi wiadomo bedzie sie ladowal layout który ostatni jest ładowany do modul manager.
A ty rozumiem ze bys chcial dla kazdego inny??

PS. a moze juz rozwiazales swoj problem??

A nie. Pomyłka.

do kazdego modelu musisz zdefiniowac layout.

do application musisz dac:
  1. 'view_manager'=> [
  2. 'template_map' => [
  3. 'layout/layoutApplication' => __DIR__ . '/../view/layout/layoutApplication.phtml',
  4. ],
  5. 'template_path_stack'=>[
  6. 'album'=>__DIR__.'/../view',
  7. ]
  8.  
  9. ]



do user musisz dac:
  1. 'view_manager'=> [
  2. 'template_map' => [
  3. 'layout/layoutUser' => __DIR__ . '/../view/layout/layoutUser.phtml',
  4. ],
  5. 'template_path_stack'=>[
  6. 'album'=>__DIR__.'/../view',
  7. ]
  8.  
  9. ]





A w controllerach przy odpowiednich akcjach dac:

Application
---------------
  1. public function indexAction()
  2. {
  3. $this->layout("layout/layoutApplication");
  4. ......





User
-------
  1. public function indexAction()
  2. {
  3. $this->layout("layout/layoutUser");
  4. ......




Chyba cos takiego.
viking
https://github.com/EvanDotPro/EdpModuleLayo...aster/README.md
A poza tym ladujesz jsonstrategy.
em1X
Ustawienia layout'u to kwestia czysto widokowa. Jeżeli w danym widoku chcesz wykorzystać layout inny niż domyślny (layout/layout), powinieneś na początku widoku napisać:

  1. <?php
  2. $this->layout('layout/inny');


Oczywiście wpis layout/inny powinien być skonfigurowany w template maps menedżera widoku.
sf
Podsumowując temat, layout można ustawić w kontrolerze, szablonie, module np. podpiąć się pod event. Wszystko opisane i uzupełnione o przykłady znajduje się w dokumentacji :

https://zendframework.github.io/zend-view/q...ng-with-layouts
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.