繁体   English   中英

如何在Drupal中修改贡献模块的功能?

[英]how to modify function of contributed module in drupal?

我有必要在simplenews模块中修改simplenews_build_newsletter_mail()函数,但是,我们不修改直接贡献的模块函数。

有人可以给我一些方法来修改simplenews_build_newsletter_mail()函数吗?

Drupal中移动的大多数数据都可以通过“挂钩”来更改

您要更改的函数simplenews_build_newsletter_mail(&$message, SimplenewsSourceInterface $source)simplenews_mail($key, &$message, $params)调用,这是hook_mail实现

好在所有的输出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;
      }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM