/**
  *
  * @return sfView
  */
 protected function getView(sfController $controller, $module, $name, array $params, $layout) {
     $view = $controller->getView($module, $name, '');
     if (!$view->getDirectory()) {
         $view->setDirectory(sfConfig::get('app_ggEmail_templateDir', sfConfig::get('sf_lib_dir') . '/email/modules') . '/' . $module . '/templates');
     }
     $view->execute();
     if (isset($layout)) {
         $view->setDecoratorTemplate($layout);
         if (!is_readable($view->getDecoratorDirectory() . '/' . $view->getDecoratorTemplate())) {
             $view->setDecoratorTemplate(sfConfig::get('app_ggEmail_layoutDir', sfConfig::get('sf_lib_dir') . '/email/templates') . '/' . $layout);
         }
         if (!is_readable($view->getDecoratorDirectory() . '/' . $view->getDecoratorTemplate())) {
             throw new Exception("No usable layout found for email '$module'/'$name': layout '$layout'");
         }
     } elseif (!is_readable($view->getDecoratorDirectory() . '/' . $view->getDecoratorTemplate())) {
         $view->setDecoratorDirectory(sfConfig::get('app_ggEmail_layoutDir', sfConfig::get('sf_lib_dir') . '/email/templates'));
     }
     $view->getAttributeHolder()->add($params);
     return $view;
 }
 /**
  *
  * @return sfView
  */
 protected function getView(sfController $controller, $module, $name, array $params, $layout)
 {
     //--------------------------------------------------------------------------
     // look for a template in the specified module
     // sf_root_dir/apps/<current application>/modules/<$module>/templates/<$name>.php
     //--------------------------------------------------------------------------
     $view = $controller->getView($module, $name, '');
     //--------------------------------------------------------------------------
     // if the template cannot be found, look in the directory specified in
     // [app_esEmailPlugin_templateDir]/<$module>/templates or
     // [sf_lib_dir]/email/modules/<$module>/templates
     //--------------------------------------------------------------------------
     if (!$view->getDirectory()) {
         $view->setDirectory(sfConfig::get('app_esEmailPlugin_templateDir', sfConfig::get('sf_lib_dir') . '/email/modules') . '/' . $module . '/templates');
     }
     $view->execute();
     //--------------------------------------------------------------------------
     // look for specific layout (if specified)
     //--------------------------------------------------------------------------
     if (isset($layout)) {
         $view->setDecoratorTemplate($layout);
         //------------------------------------------------------------------------
         // look in sf_root_dir/apps/<current application>/templates
         //------------------------------------------------------------------------
         if (!is_readable($view->getDecoratorDirectory() . '/' . $view->getDecoratorTemplate())) {
             //----------------------------------------------------------------------
             // if the layout cannot be found, look in the directory specified in
             // [app_esEmailPlugin_layoutDir]/email/templates or
             // [sf_lib_dir]/email/templates
             //----------------------------------------------------------------------
             $view->setDecoratorTemplate(sfConfig::get('app_esEmailPlugin_layoutDir', sfConfig::get('sf_lib_dir') . '/email/templates') . '/' . $layout);
         }
         if (!is_readable($view->getDecoratorDirectory() . '/' . $view->getDecoratorTemplate())) {
             throw new Exception("No usable layout found for email '{$module}'/'{$name}': layout '{$layout}'");
         }
     } elseif (!is_readable($view->getDecoratorDirectory() . '/' . $view->getDecoratorTemplate())) {
         //------------------------------------------------------------------------
         // no default layout found in default layout directory, so look for
         // default layout in [app_esEmailPlugin_layoutDir]/email/templates
         //------------------------------------------------------------------------
         $view->setDecoratorDirectory(sfConfig::get('app_esEmailPlugin_layoutDir', sfConfig::get('sf_lib_dir') . '/email/templates'));
     }
     $view->getAttributeHolder()->add($params);
     return $view;
 }