如何在 Drupal 8 中编写自定义模块以将蜜罐连接到 Simpleform?

问题描述

我正在 Drupal 8 中开发一个自定义模块,它应该在蜜罐模块的帮助下保护 Simpleform 表单。

到目前为止,我可以在 Drupal 中启用我的模块,它可以完美地工作,但是蜜罐保护没有添加到表单中。我现在的问题之一是我不知道表单 ID 是什么。这就是为什么我试图记录整个表单 - 这也不起作用。

当我加载包含 Simpleform 的页面时,Drupal 似乎绕过了我的 .module 文件中的全部代码。我在这里做错了什么?

我的文件

overwrite_simplenews.info.yml

name: Overwrite Simplenews
type: module
description: 'Enable Honeypot for Simplenews plugin'
package: Custom
core: 8.x

overwrite_simplenews.module

<?PHP

function hook_form_alter(&$form,\Drupal\Core\Form\FormStateInterface $form_state,$form_id){
    if ($form_id == 'simplenews_subscriptions_block_dc6f06ce_ad69-46de_8d8d'){
            honeypot_add_form_protection($form,$form_state,array('honeypot'));
    }

    $message = 'Form content: <pre>' . print_r($form,TRUE) . '</pre>';
    \Drupal::logger('overwrite_simplenews')->notice($message);
}

解决方法

所有钩子都必须根据你的模块名称“重命名”。 例如,要使用 hook_form_alter,您必须调用您的函数:overwrite_simplenews_form_alter();