如何修改drupal中贡献模块的功能?
Posted
技术标签:
【中文标题】如何修改drupal中贡献模块的功能?【英文标题】:how to modify function of contributed module in drupal? 【发布时间】:2014-12-08 21:57:52 【问题描述】:我需要修改 simplenews 模块中的 simplenews_build_newsletter_mail() 函数,但是我们不修改直接贡献的模块函数。
有人可以给我修改 simplenews_build_newsletter_mail() 函数的方法吗?
【问题讨论】:
【参考方案1】:drupal 中移动的大部分数据都可以通过“钩子”进行更改
您要更改的函数 simplenews_build_newsletter_mail(&$message, SimplenewsSourceInterface $source)
正在从 simplenews_mail($key, &$message, $params)
调用,这是 hook_mail
的 simplenews 实现
幸运的是,hook_mail
的所有输出都可以通过hook_mail_alter()
进行更改。
您需要做的是创建自己的模块,然后在新的自定义模块中实现hook_mail_alter()
。找到您的目标电子邮件,更改它们。
您需要使用邮件 $id 确定要更改的邮件,id 将是 $module_$key 其中模块是在您的情况下生成此电子邮件 (simplenews) 的 drupal 模块.
在此处查找更多信息https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_mail_alter/7
/**
* Implements hook_mail_alter().
*/
function mymodule_mail_alter(&$message)
switch ($message['id'])
case 'simplenews_node':
case 'simplenews_test':
// Do your magic.
break;
【讨论】:
以上是关于如何修改drupal中贡献模块的功能?的主要内容,如果未能解决你的问题,请参考以下文章