如何在 Drupal 8 中编写自定义模块以将 Honeypot 连接到 Simpleform?
How do I write a custom module in Drupal 8 to connect Honeypot to Simpleform?
我正在 Drupal 8 中开发一个自定义模块,它应该在蜜罐模块的帮助下保护 Simpleform 表单。
到目前为止,我可以在 Drupal 中启用我的模块,它可以完美地工作,但是蜜罐保护没有添加到表单中。我现在的问题之一是我不知道表单 ID 是什么。这就是我尝试记录整个表格的原因 - 这也不起作用。
当我加载包含 Simpleform 的页面时,我的 .module 文件中的整个代码似乎都被 Drupal 绕过了。我在这里做错了什么?
我的文件:
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();
我正在 Drupal 8 中开发一个自定义模块,它应该在蜜罐模块的帮助下保护 Simpleform 表单。
到目前为止,我可以在 Drupal 中启用我的模块,它可以完美地工作,但是蜜罐保护没有添加到表单中。我现在的问题之一是我不知道表单 ID 是什么。这就是我尝试记录整个表格的原因 - 这也不起作用。
当我加载包含 Simpleform 的页面时,我的 .module 文件中的整个代码似乎都被 Drupal 绕过了。我在这里做错了什么?
我的文件:
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();