Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]layout.phtml i powtarzające się skrypty i arkusze css w źródle strony
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. Mam następujący problem: podzieliłem aplikację na moduły i wprowadziłem layout, w którym załączam skrypty js i arkusze css w następujący sposób (fragment pliku layout.phtml):

  1. <?php echo $this->doctype()."\n" ?>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
  1. <?php
  2. echo $this->headMeta()."\n";
  3. echo $this->headTitle()."\n";
  4. echo $this->headLink()->prependStylesheet($this->baseUrl()."POPRAWNA_SCIEZKA/skrypt.css")."\n";
  5. echo $this->headScript()->appendFile($this->BaseUrl() . 'POPRAWNA_SCIEZKA/skrypt.js')."\n";
  6. ?>

</head><body>
Jednak ku mojemu zaskoczeniu te same skrypty i arkusze są dołączane kilka razy, tak, że wychodzi na to, że zamiast ok. 13-stu pozycji mam... 66 (!) i dość poważny problem. Jak zakomentuję linie, w których dodaję te skrypty i arkusze, to w ogóle ani jednego nie dołączy.
I teraz pytanie: Jak/co zrobić, aby te skrypty dołączały się tylko raz i nie powtarzały w źródle strony?

To wrzucę jeszcze fragment Bootstrap.php:
  1. protected function _initViewHelpers() {
  2.  
  3. $this->bootstrap("layout");
  4. $layout = $this->getResource("layout");
  5. $view = $layout->getView();
  6.  
  7. $view->doctype("XHTML1_TRANSITIONAL");
  8. $view->headMeta()->appendHttpEquiv('Content-Type','text/html; charset=UTF-8');
  9. $view->headMeta()->appendHttpEquiv('Content-Language','pl-PL')
  10. // read from SEO table(?):
  11. ->appendName("description","Login page");
  12.  
  13. $view->headTitle()->setSeparator(" - ");
  14. $view->headTitle("TEST");
  15.  
  16. $navContainerConfig = new Zend_Config_Xml(APPLICATION_PATH."/configs/navigation.xml", "nav");
  17. $navContainer = new Zend_Navigation($navContainerConfig);
  18. $view->navigation($navContainer)->setAcl($this->_acl)->setRole(Zend_Registry::get("role"));
  19. }


Ten post edytował darko 6.02.2010, 16:23:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





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

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


ok działa, dzięki ~batman
Ja tylko dodam, co zrobiłem:

Bootstrap.php

  1. protected function _initHtml() {
  2. $this->bootstrap("layout");
  3. $layout = $this->getResource("layout");
  4. $view = $layout->getView();
  5. $url = '/test';
  6. // css
  7. $view->headLink()->appendStylesheet($url."/application/modules/default/views/css/style.css");
  8. $view->headLink()->appendStylesheet($url.'/application/modules/default/views/css/jscal2/jscal2.css');
  9. $view->headLink()->appendStylesheet($url.'/application/modules/default/views/css/jscal2/border-radius.css');
  10. $view->headLink()->appendStylesheet($url.'/application/modules/default/views/css/jscal2/steel.css');
  11. $view->headLink()->appendStylesheet($url.'/application/modules/default/views/css/ckeditor/_samples/sample.css');
  12. $view->headLink()->appendStylesheet($url."/application/modules/default/views/css/prettyPhoto.css");
  13. $view->headLink()->appendStylesheet($url . "/application/modules/default/views/js/pagination/css/jq.css");
  14. $view->headLink()->appendStylesheet($url . "/application/modules/default/views/js/pagination/themes/blue/style.css");
  15. $view->headLink()->appendStylesheet($url . "/application/modules/default/views/js/slide_menu/jqueryslidemenu.css");
  16. // js
  17. $view->headScript()->appendFile($url . '/application/modules/default/views/js/jscal2/jscal2.js');
  18. $view->headScript()->appendFile($url . '/application/modules/default/views/js/jscal2/lang/en.js');
  19. $view->headScript()->appendFile($url . '/application/modules/default/views/js/ckeditor/ckeditor.js');
  20. $view->headScript()->appendFile($url . '/application/modules/default/views/js/ckeditor/_samples/sample.js');
  21. $view->headScript()->appendFile($url . '/application/modules/default/views/js/slide_menu/jquery.min.js');
  22. $view->headScript()->appendFile($url . '/application/modules/default/views/js/slide_menu/jqueryslidemenu.js');
  23. }


layout.phtml:
  1. <?php echo $this->doctype()."\n" ?>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. <?php
  5. echo $this->headMeta()."\n";
  6. echo $this->headTitle()."\n";
  7. echo $this->headLink()."\n";
  8. echo $this->headScript()."\n";
  9. ?>


i... (IMG:style_emoticons/default/guitar.gif)
Na marginesie: dziwne, że w Bootstrap.php jak w miejsce $url wstawię Zend_Controller_Front::getInstance()->getBaseUrl(); to nie działa (pusto)
// edit
nie dziwota, Front_Controller jeszcze nie istnieje, w końcu jesteśmy dopiero w Bootstrap

Ten post edytował darko 7.02.2010, 15:27:18
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 17:53