/** * * @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; }