我正在开发一个Joomla!3.0 / 3.1组件,允许人们在线预订高尔夫课程。当他们完成预订并处理paypal付款时,我想向他们发送收据/确认电子邮件。 我可以做得很好,并以html或纯文本格式发送信息。但是,我不喜欢我现在在我的控制器代码中有视图(电子邮件内容)数据的事实。 是否有可能有一种模板视图文件可以解析并作为内容发送?还是我在我的代码中坚持了它?
谢谢, 克里斯
答案 0 :(得分:1)
将配置字段添加到textarea
或editor
类型的组件中,然后让用户编写电子邮件模板。您应该解释哪些令牌可用或至少提供默认文本,例如
Dear {USERNAME},
today I received {NUM_MESSAGES} messages on your behalf,
and your profile has been viewed {NUM_PROFILEVIEWS} times.
然后只需用str_replace
替换代码中的{TOKENS}。
答案 1 :(得分:1)
在管理员端创建一个部分,使用Joomla的默认编辑器
编辑您的电子邮件模板你在后端创建一个编辑器并在其中打开一个html文件,用于更改样式,格式化用户的内容等。
将您的模板文件保存为服务器上的HTML文件,并通过电子邮件发送时间如下所示。
function send_mail_account_pages($email_title,$greeting_text,$subject,$email_content,$user_email){
$config = JFactory::getConfig();
$data['fromname'] = $config->get('fromname');
$data['mailfrom'] = $config->get('mailfrom');
$data['sitename'] = $config->get('sitename');
$path = JPATH_BASE."/email_tmpl/";
$fp = fopen($path."email_tmpl.html","r");
$fsize = filesize($path."email_tmpl.html");
$fcontent = fread($fp,$fsize);
fclose($fp);
$date_format = date("M.d, Y");
$fcontent = str_replace("{email_page_title}",$email_title,$fcontent);
$fcontent = str_replace("{date}",$date_format,$fcontent);
$fcontent = str_replace("{greeting_text}",$greeting_text,$fcontent);
$fcontent = str_replace("{email_content}",$email_content,$fcontent);
$fcontent = str_replace("{thanks_text}",THANKS_TEXT,$fcontent);
$return = JUtility::sendMail($data['mailfrom'], $data['fromname'], $user_email, $subject, $fcontent,1);
}
通过这种方式,您可以让管理员用户授予更改模板样式的权限,确保管理员用户不会修改{place holders}
。
希望它的帮助..