示例#1
0
 /**
  * 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}");
 }