首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用hook_ENTITY_TYPE_prepare_form()以编程方式更改webform

如何使用hook_ENTITY_TYPE_prepare_form()以编程方式更改webform
EN

Drupal用户
提问于 2023-05-14 01:22:19
回答 1查看 29关注 0票数 0

在D10.0.9上使用Webform 6.2.0Beta5。

我已经创建了一个带有模块的自定义webform;这是非常完美的。

现在,我需要对webform做一些更改;一些值将在我的自定义模块中计算,用作字段的默认值,然后将字段隐藏起来。

通过这段代码,我可以看到$webform的详细信息:

代码语言:javascript
运行
复制
function mymodule_webform_submission_prepare_form(WebformSubmissionInterface $webform_submission, $operation, FormStateInterface $form_state) {
  $webform = $webform_submission->getWebform();
  if ($webform->id() == 'custom_webform_id') {
    \Drupal::messenger()->addStatus($webform);
  }
}

例如,我现在如何:

  1. 向webform字段添加值
  2. 向用户隐藏该webform字段

这将产生以编程方式向webform字段添加值的效果。

谢谢

EN

回答 1

Drupal用户

发布于 2023-05-14 04:06:57

目标:将一些隐藏字段添加到webform中,在自定义代码中计算这些字段的值,然后将它们与webform一起提交。

您可以使用挂钩,但我认为有一个更好的方法:标准的Webform隐藏字段与自定义令牌。

Webfoorm支持在UI中创建隐藏字段,所以只需在那里创建您需要的字段即可。

然后,您可以将隐藏字段的值设置为一个令牌--这就是您的自定义代码的来源。您可以在自定义模块中创建令牌,然后,在重新构建缓存之后,您的令牌将可在webform中使用。

下面是关于创建令牌的教程示例模块也有用于创建令牌的示例代码。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/315737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档