我需要修改simplenews模块中的simplenews_build_newsletter_mail()函数,但是我们不修改直接贡献的模块函数。
有人能告诉我修改simplenews_build_newsletter_mail()函数的方法吗?
发布于 2014-10-14 08:04:45
大多数在drupal中移动的数据都可以通过“钩子”进行修改。
要更改simplenews_build_newsletter_mail(&$message, SimplenewsSourceInterface $source)的函数是从simplenews_mail($key, &$message, $params)调用的,这是hook_mail的简单实现。
幸运的是,hook_mail的所有输出都可以通过hook_mail_alter()进行更改。
您需要做的是创建自己的模块,然后在新的自定义模块中实现hook_mail_alter()。找到你的目标电子邮件,改变它们。
您需要确定要使用邮件$id修改的邮件,在您的情况下,标识为{$module}_{$key},其中模块是生成此电子邮件的drupal模块(simplenews)。
在这里可以找到更多信息,alter/7
/**
* Implements hook_mail_alter().
*/
function mymodule_mail_alter(&$message) {
switch ($message['id']) {
case 'simplenews_node':
case 'simplenews_test':
// Do your magic.
break;
}
}https://stackoverflow.com/questions/26355189
复制相似问题