cyberwoven/webform_queued_post_handler

此模块扩展了Webform模块的远程提交Web表单处理器插件,使用Drupal队列API使远程提交异步。

1.0.2 2023-03-23 20:03 UTC

This package is auto-updated.

Last update: 2024-09-23 23:06:53 UTC


README

此模块扩展了Webform模块的远程提交Web表单处理器插件,使用Drupal队列API使远程提交异步。它仅对“完成”的URL进行排队。“更新”和“删除”的URL将像正常一样运行。

设置

只需启用模块,一个名为“异步远程提交”的新处理器应该会在Web表单的“电子邮件/处理器”部分中可用。提交Web表单后,排队的项应该出现在队列表中,并且将在下一次cron运行时进行处理。

注意

测试/调试

要测试完成/更新/删除的URL,如果您启用“Webform Remote Post Example”模块,以下URL将可用

您可以使用隐藏字段作为“确认令牌”来存储远程响应数据中的确认令牌。令牌的格式为[webform:handler:<handler_id>:<state>:<key>]

* `handler_id`: The handler id (eg: async_remote_post, async_remote_post_2...)
* `state`: completed/updated/deleted
* `key`: The key of whatever value you want in the response. I think it assumes a JSON response, but not sure.

例如 [webform:handler:async_remote_post:completed:confirmation_number] 将替换为从“完成URL”响应中获取的“confirmation_number”值。

重试

目前,如果排队的项由于某种原因失败,则不会重新排队。因此,基本上只有一个机会。如果我们决定要给予更多尝试,可以通过抛出DelayedRequeueException来实现,这将告诉队列API重新排队项。然而,AsyncRemotePostWebformHandler继承的remotePost函数没有向上冒泡异常,它静默地处理它们并返回。因此,我们需要重写该函数。这已经完成,但已被注释掉。