コード例 #1
0
 public function testRenderScriptToPreviouslyNamedResponseSegment()
 {
     $this->request->setModuleName('bar')->setControllerName('index')->setActionName('test');
     $controller = new Bar_IndexController($this->request, $this->response, array());
     $this->helper->setResponseSegment('foo');
     $this->helper->renderScript('index/test.phtml');
     $body = $this->response->getBody('foo');
     $this->assertContains('Rendered index/test.phtml in bar module', $body);
 }
コード例 #2
0
 /**
  * This function updates the ViewRender helper to add another view directory
  * which is located in the templates directory.
  *
  * This adds the feature to override view script in certain templates.
  *
  * @param  string $script
  * @param  string $name
  * @return void
  */
 public function renderScript($script, $name = null)
 {
     $application = $this->getFrontController()->getParam('application');
     $module = $this->getModule();
     $viewScriptPath = trim($this->view->layout()->getViewScriptPath(), DIRECTORY_SEPARATOR);
     $scriptPath = $viewScriptPath . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . $application . DIRECTORY_SEPARATOR . 'modules' . DIRECTORY_SEPARATOR . $module . DIRECTORY_SEPARATOR;
     if (!in_array($scriptPath, $this->view->getScriptPaths())) {
         $this->view->addScriptPath($scriptPath);
     }
     parent::renderScript($script, $name);
 }
コード例 #3
0
ファイル: DelegateAbstract.php プロジェクト: rosstuck/trifle
 /**
  * Tries to render a delegate action's default template if it exists.
  *
  * Because we can't always know the short name of a delegate (like we can
  * with a controller), the default view spec of :controller/:action:suffix
  * won't work for us. This means we can't just prepend our default paths to
  * the view script paths. Instead, this function changes the viewRenderer
  * spec to just :action:suffix, puts in the default dirs, tries to render
  * and then flips back the settings afterwards. 
  *
  * @todo Ugly, needs refactoring
  * @param Zend_Controller_Action_Helper_ViewRenderer $viewRenderer
  * @param Zend_View_Abstract $view
  * @param string $action Name of the action, without the "Action" suffix
  */
 protected function _renderDefaultScript($viewRenderer, $view, $action)
 {
     //No settings? Abort to save cycles
     $defaultPaths = $this->getDefaultScriptPaths();
     if (empty($defaultPaths)) {
         return;
     }
     //Save the old settings
     $oldSpec = $viewRenderer->getNoController();
     $oldPaths = $view->getScriptPaths();
     //Set the viewrenderer spec to look inside a flat directory
     $viewRenderer->setNoController(true);
     $view->setScriptPath($defaultPaths);
     $path = $viewRenderer->getViewScript($action);
     //relative path
     $fullPath = $view->getScriptPath($path);
     //absolute path
     //We use the full path to make sure this template actually exists on
     //disc but Zend_View will only accept a path relative to a script dir.
     if (!empty($fullPath) !== false) {
         $viewRenderer->renderScript($path);
     }
     //Reset view settings so we don't botch anything afterwards?
     $viewRenderer->setNoController($oldSpec);
     $view->setScriptPath($oldPaths);
 }