Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] + Smarty + Dojo
Forum PHP.pl > Forum > PHP > Frameworki
Earth
  1. <?php
  2.  
  3. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  4. {
  5.  
  6. protected function _initAutoload()
  7. {
  8. $autoloader = new Zend_Application_Module_Autoloader(array(
  9. 'namespace' => 'Default_',
  10. 'basePath' => dirname(__FILE__),
  11. ));
  12. return $autoloader;
  13. }
  14.  
  15.  
  16. function _initViewHelpers()
  17. {
  18. ...
  19. $config = Zend_Registry::get('config');
  20.  
  21. require_once 'Core/View/Smarty.php';
  22.  
  23. //setup new view object and view helper
  24. $config = Zend_Registry::get('config');
  25. $view = new Core_View_Smarty();
  26. $view->setScriptPath(getcwd() . $config->smarty->template_dir);
  27. $view->setCompilePath($config->smarty->compile_dir);
  28. $view->setCachePath($config->smarty->cache_dir);
  29. $view->setConfigPath($config->smarty->config_dir);
  30. $view->addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
  31. $this->view = $view;
  32.  
  33. $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
  34. $viewRenderer->setViewSuffix('tpl')
  35. ->setView($view);
  36.  
  37. //use layout view pattern
  38. $layout = Zend_Layout::startMvc();
  39. $layout->setViewSuffix('tpl')
  40. ->setLayout(getcwd() . $config->smarty->template_dir. "layout");
  41.  
  42. $layout->menu = ..
  43. ...
  44.  
  45. $this->view->layout = $layout;
  46. $this->view->layout->zendView = new Zend_View();
  47. $this->view->layout->zendView->location = $config->location;
  48. $layout->view->location = $config->location;
  49.  
  50. $view->assign( 'layout', $layout );
  51. $view->assign( 'this', $this->view->layout->zendView);
  52.  
  53. $view->assign( 'view', $this->view);
  54. var_dump($this->view->dojo()->isEnabled()); //Tutaj działa, w smarty już nie :(
  55.  
  56. }
  57.  
  58. ...
  59.  
  60. }

Teraz szablon .tpl:
  1. {php} echo $view->dojo()->isEnabled(){/php}

Na koniec błąd:
Kod
Fatal error: Call to a member function dojo() on a non-object in /var/www/......./cache/templates_c/%%FD^FDB^FDB64EFD%%layout.tpl.php on line 15
omeck
Nigdy nie używałem Dojo (i raczej nie będę ;-)), ale może spróbuj tak:

  1. $view->assign( 'view', $this->view);
  2. $view->assign( 'dojo', $this->view->dojo());


  1. {php} echo $dojo()->isEnabled(){/php}

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.