Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] Jak uzyskać baseUrl w bootstrap
amii
post
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Dopiero co zaczynam zabawę z Zend i mam taki problem. Jako placeholder chcę umieścić linki do skryptów i css w layout.phtm w tym celu napisałem sobie prostego helpera jest umieszczony w katalogu: my_project/application/views/helpers/BaseUrl.php
  1. <?php
  2. class Zend_view_Helper_BaseUrl {
  3.  
  4. function baseUrl() {
  5. $fc = Zend_controller_front::getInstance();
  6. return $fc->getBaseUrl();
  7. }
  8.  
  9. }

Następnie w layout.phtml umieszczam instrukcje
  1. <?php echo $this->headLink()->appendStylesheet($this->baseUrl().'/css/main.css') ? //działa>
  2. <?php echo $this->headScript()->prependFile($this->baseUrl().'/js/jquery-1.5.2.min.js'); ? //nie działa>

Próbowałem z bootstrap ale nie wiem jak tam wywołać funkcję zwracającą baseUrl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
amii
post
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


grOm trochę zbyt zakręcone jak dla mnie ale dzięki za pomoc i szybkie odpowiedzi
Chyba udało mi się znaleźć rozwiązanie, które wygląda w miarę schludnie i przejrzyście oto one (IMG:style_emoticons/default/smile.gif)
bootstrap.php
  1. protected function _initPlaceholders()
  2. {
  3. //set the front controller request to initilize baseUrl in bootstrap
  4. $this->bootstrap('FrontController');
  5. $front = $this->getResource('FrontController');
  6. $request = new Zend_Controller_Request_Http();
  7. $front->setRequest($request);
  8.  
  9. //grab the view and set the doctype:
  10. $this->bootstrap('view');
  11. $view = $this->getResource('view');
  12. $view->doctype('XHTML1_STRICT');
  13.  
  14. // Set the initial title and separator:
  15. $view->headTitle('Seo precel')
  16. ->setSeparator(' :: ');
  17.  
  18. // Set the initial stylesheet:
  19. $view->headLink()->appendStylesheet($this->view->baseUrl('css/main.css'));
  20. $view->headLink()->appendStylesheet($this->view->baseUrl('css/jquery.ennui.contentslider.css'));
  21.  
  22. // Set the initial JS to load:
  23. $view->headScript()->appendFile($this->view->baseUrl('js/jquery-1.5.2.min.js')); //w przypadku jQuery trzeba zachować właściwą kolejność plików
  24. $view->headScript()->appendFile($this->view->baseUrl('js/jquery-ui.js'));
  25. $view->headScript()->appendFile($this->view->baseUrl('js/jquery.ui.touch.js'));
  26. $view->headScript()->appendFile($this->view->baseUrl('js/jquery.ennui.contentslider.js'));
  27. $view->headScript()->appendFile($this->view->baseUrl('js/admin.js'));
  28. $view->headScript()->appendFile($this->view->baseUrl('js/jquery.easing.1.3.js'));
  29. }


layout.phtml wygląda dzięki temu bardzo przejrzyście a dodatkowe skrypty i style można doczepiać w kontrolerach i akcjach
  1. <?php echo $this->doctype() ?>
  2. <html xml:lang="pl" xmlns="http://www.w3.org/1999/xhtml" lang="pl">
  3.  
  4. <head>
  5. <meta name="Description" content="Seo precel to program do automatycznego pozycjonowania stron www. Robot umożliwia skuteczne pozycjonowanie w Google na własną rękę. Dodawarka w pełni automatycznie realizuje dodawanie do katalogów wordpress.">
  6. <meta name="Keywords" content="seo precel, dodawarka do wordpress, pozycjonowanie stron">
  7. <meta http-equiv="Content-type" content="text/html; charset=UTF-8">
  8.  
  9. <?php echo $this->headTitle() ?>
  10. <?php echo $this->headLink() ?>
  11. <?php echo $this->headScript() ?>
  12.  
  13. </head>
  14.  
  15. //some other code
  16.  
  17.  
  18. //warto zwrócić uwagę na to poniżej, bo skrypt bez poprawek nie wczytuje grafik co może sugerować, że nie ładuje się JS
  19. <!-- Site JavaScript -->
  20. <?php echo
  21. '<script type="text/javascript">
  22. $(function() {
  23. $(\'#top\').ContentSlider({
  24. leftBtn : \''.$this->baseUrl().'/img/slider_left_control.png\',
  25. rightBtn : \''.$this->baseUrl().'/img/slider_right_control.png\',
  26. width : \'360px\',
  27. height : \'200px\',
  28. speed : 600,
  29. easing : \'easeOutQuint\'
  30. });
  31. });
  32. </script>';
  33. ?>
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: 13.10.2025 - 17:40