Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF]Dostęp do zasobu layoutu z Bootstrapa modułu
darko
post
Post #1





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Witam. Problem zapewne błahy, jednak nie mogę przez to przebrnąć. Mam aplikację napisaną w ZF z podziałem na moduły (ZF 1.9.5.). I teraz próbuję przy pomocy Bootstrap.php w powiedzmy module X dostać się do zasobu layoutu. Moim celem jest jedynie dołączenie skryptów js i arkuszy css w sekcji head dokumentu generowanego dla modułu X. Próbowałem tak:
  1. class X_Bootstrap extends Zend_Application_Module_Bootstrap {
  2.  
  3. protected function _initHtml() {
  4. $this->bootstrap("layout");
  5. $layout = $this->getResource("layout");
  6. $view = $layout->getView();
  7. $url = '/COS_TAM';
  8. // css
  9. $view->headLink()->appendStylesheet($url."/application/modules/X/views/css/abc.css");
  10. $view->headLink()->appendStylesheet($url."/application/modules/X/views/css/xyz.css");
  11. // js
  12. $view->headScript()->appendFile($url . '/application/modules/X/views/js/abc.js');
  13. $view->headScript()->appendFile($url . '/application/modules/X/views/js/xyz.js');
  14. }
  15. }

i:
Kod
Fatal error: Uncaught exception 'Zend_Application_Bootstrap_Exception' with message 'Resource matching "layout" not found' in /var/www/XXX/library/Zend/Application/Bootstrap/BootstrapAbstract.php:687 Stack trace: #0 /var/www/XXX/library/Zend/Application/Bootstrap/BootstrapAbstract.php(622): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('layout') #1 /var/www/XXX/library/Zend/Application/Bootstrap/BootstrapAbstract.php(579): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap('layout') #2 /var/www/XXX/application/modules/X/Bootstrap.php(13): Zend_Application_Bootstrap_BootstrapAbstract->bootstrap('layout') #3 /var/www/XXX/library/Zend/Application/Bootstrap/BootstrapAbstract.php(662): X_Bootstrap->_initHtml() #4 /var/www/XXX/library/Zend/Application/Bootstrap/BootstrapAbstract.php(615): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('html') #5 /var/www/XXX/library/Zend/Application/Bootstrap/BootstrapAbstract.php(579 in /var/www/XXX/library/Zend/Application/Bootstrap/BootstrapAbstract.php  on line 687


Plik Bootstrap.php jest we właściwym miejscu (jak w pozostałych modułach, dla których jednak nie zachodziła potrzeba dopisywania czegokolwiek do Bootstrapów), ścieżki się zgadzają, bo sprawdziłem, wszystko powinno działać, jednak nie działa.

Próbowałem też tak:

  1. class X_Bootstrap extends Zend_Application_Module_Bootstrap {
  2.  
  3. protected function _initHtml() {
  4. //$this->bootstrap("layout");
  5. parent::bootstrap("layout");
  6. //$layout = $this->getResource("layout");
  7. $layout = parent::getResource("layout");
  8. $view = $layout->getView();
  9.  
  10. $url = '/COS_TAM';
  11. // css
  12. $view->headLink()->appendStylesheet($url."/application/modules/X/views/css/abc.css");
  13. $view->headLink()->appendStylesheet($url."/application/modules/X/views/css/xyz.css");
  14. // js
  15. $view->headScript()->appendFile($url . '/application/modules/X/views/js/abc.js');
  16. $view->headScript()->appendFile($url . '/application/modules/X/views/js/xyz.js');
  17. }
  18. }

Jednak dalej to samo. Proszę o jakiekolwiek wskazówki/uwagi, co źle robię.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
thm
post
Post #2





Grupa: Zarejestrowani
Postów: 52
Pomógł: 10
Dołączył: 6.10.2008
Skąd: Lublin

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


w application.ini
Kod
resources.layout[] =
Go to the top of the page
+Quote Post
darko
post
Post #3





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Po czy przed:
resources.layout.layoutpath = APPLICATION_PATH "/layouts"
?
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




  1. resources.modules = ""
  2. TWOJA_NAZWA_MODULU.resources.layout.layoutPath = APPLICATION_PATH "/modules/layouts/scripts"


W miejscu TWOJA_NAZWA_MODULU wstaw moduł, w którym chcesz, żeby to działało.
Go to the top of the page
+Quote Post
darko
post
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Wow! To naprawdę działa (IMG:style_emoticons/default/smile.gif) Po raz kolejny wielkie dziękuję ~batman
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Właśnie zauważyłem, że wkradł się błąd do mojego przykładu powinno być tak:
  1. TWOJA_NAZWA_MODULU.resources.layout.layoutPath = APPLICATION_PATH "/modules/TWOJA_NAZWA_MODULU/layouts/scripts"

Oczywiście położenie layoutu to sprawa umowna, ale lubię jak wszystko jest poprawnie napisane (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
darko
post
Post #7





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Wystarczy też przekierować ścieżkę layoutu dla modułu do lokalizacji, gdzie rezyduje layout ogólny, wspólny dla wszystkich modułów, tak czy siak pomogłeś bardzo, poradziłem sobie, dzięki wielkie. Pozdrawiam.
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: 24.08.2025 - 19:45