2012-07-31 56 views
0

使用Symfony 1.4框架,是否可以從lib/mail目錄中獲取模板並將其用作操作中的模板?我不認爲使用setTemplate將有可能讓這一點,因爲這是在本地方法:在動作中使用郵件模板

public function setTemplate($name, $module = null) 
    { 
     if (sfConfig::get('sf_logging_enabled')) 
     { 
     $this->dispatcher->notify(new sfEvent($this, 'application.log', array(sprintf('Change template to "%s/%s"', null === $module ? 'CURRENT' : $module, $name)))); 
     } 

     if (null !== $module) 
     {                                                          
     $name = sfConfig::get('sf_app_dir').'/modules/'.$module.'/templates/'.$name; 
     } 

     sfConfig::set('symfony.view.'.$this->getModuleName().'_'.$this->getActionName().'_template', $name); 
    } 
+0

的文件,你可以發佈revelant代碼,而不是一個從'setTemplate'?並且更好地解釋你想要什麼:你的模板在哪裏?什麼是lib/mail?你在談論哪個行動? – j0k 2012-08-01 07:25:55

+0

模板生活在lib/mail中,所以一個例子可能是lib/mail/confirmation_email.php。在一個動作中,我想使用模板lib/mail/confirmation_email.php而不是apps/app_name/modules/module_name/template.php – tipu 2012-08-01 20:16:27

+0

爲什麼模板在這個文件夾中? – j0k 2012-08-01 20:21:16

回答

0

如果你想在更多的項目使用的模板,你可以做一個插件是,或者只是symlink模塊/模板文件夾。

如果使用符號鏈接,仍然可以使用setTemplate()函數,並且所有模板在每個項目中始終保持不變。

或者你可以重寫setTemplate()功能,接受第三個參數,並宣讀了sf_lib_dir代替sf_app_dir