/** * sfSmarty::renderFile() * render template file using Smarty * * @param sfSmartyView $view * @param mixed $file * @return * @access protected **/ public function renderFile($view, $file) { $sf_context = sfContext::getInstance(); $sf_request = $sf_context->getRequest(); $sf_params = $sf_request->getParameterHolder(); $sf_user = $sf_context->getUser(); if ($view->getAttribute('sf_type') == 'layout') { self::$smarty->compile_id = $view->getDecoratorTemplate(); } else { self::$smarty->compile_id = $view->getModuleName(); } $this->loadCoreAndStandardHelpers(); $_escaping = $view->getAttributeHolder()->getEscaping(); if ($_escaping === true || $_escaping == 'on') { $sf_data = $this->getSfData($view, $view->getAttributeHolder()->getEscapingMethod()); } elseif ($_escaping === false || $_escaping == 'off') { $sf_data = $this->getSfData($view); $data =& $view->getAttributeHolder()->getAll(); foreach ($data as $key => &$value) { self::$smarty->assign_by_ref($key, $value); } } // we need to add the data to smarty self::$smarty->assign_by_ref('sf_data', $sf_data); // we need to add the context to smarty self::$smarty->assign_by_ref('sf_context', $sf_context); // we need to add the request to smarty self::$smarty->assign_by_ref('sf_request', $sf_request); // we need to add the params to smarty self::$smarty->assign_by_ref('sf_params', $sf_params); // we need to add the user to smarty self::$smarty->assign_by_ref('sf_user', $sf_user); return self::$smarty->fetch("file:{$file}"); }