Drupal 8 - 向外部提交 Webform API
Drupal 8 - Submit Webform to an external API
我的 Drupal 网站 (8.8.5) 上有一个 Webform。 Webform 有多个字段和两个文件字段。
当用户提交 Webform 时,我想将详细信息发送到外部 API (SugarCRM),包括 Webform 中附加的文件。
我该怎么做? Drupal 8 中是否有一个模块可以轻松实现这一点?还是我需要处理提交的数据并手动调用 API?
我也想在网站上正常运行时存储数据。
我相信 Webform SugarCRM Integration 可能正是您所追求的。它有 Drupal 8 的稳定版本 8.x-2.1
。
如果它不适合您的需要,您可以编写自己的自定义 Webform 处理程序。类似于下面的内容,扩展了 Webform 的 WebformHandlerBase
class:
<?php
namespace Drupal\your_module\Plugin\WebformHandler;
use Drupal\webform\Plugin\WebformHandlerBase;
/**
* Class SugarCrmWebformHandler.
*
* @package Drupal\your_module\Plugin\WebformHandler
*
* @WebformHandler(
* id = "sugar_crm",
* label = @Translation("Sugar CRM"),
* category = @Translation("External"),
* description = @Translation("Webform handler integrating with Sugar CRM."),
* cardinality = \Drupal\webform\Plugin\WebformHandlerInterface::CARDINALITY_SINGLE,
* results = \Drupal\webform\Plugin\WebformHandlerInterface::RESULTS_PROCESSED,
* )
*/
class SugarCrmWebformHandler extends WebformHandlerBase {
/**
* {@inheritdoc}
*/
public function postSave(WebformSubmissionInterface $webform_submission, $update = TRUE) {
# code for Sugar CRM...
}
}
或者,您也可以考虑使用 Webform 的 RemotePostWebformHandler
class,它可能会为您的集成提供一些样板文件。
查看其他资源:
我的 Drupal 网站 (8.8.5) 上有一个 Webform。 Webform 有多个字段和两个文件字段。
当用户提交 Webform 时,我想将详细信息发送到外部 API (SugarCRM),包括 Webform 中附加的文件。
我该怎么做? Drupal 8 中是否有一个模块可以轻松实现这一点?还是我需要处理提交的数据并手动调用 API?
我也想在网站上正常运行时存储数据。
我相信 Webform SugarCRM Integration 可能正是您所追求的。它有 Drupal 8 的稳定版本 8.x-2.1
。
如果它不适合您的需要,您可以编写自己的自定义 Webform 处理程序。类似于下面的内容,扩展了 Webform 的 WebformHandlerBase
class:
<?php
namespace Drupal\your_module\Plugin\WebformHandler;
use Drupal\webform\Plugin\WebformHandlerBase;
/**
* Class SugarCrmWebformHandler.
*
* @package Drupal\your_module\Plugin\WebformHandler
*
* @WebformHandler(
* id = "sugar_crm",
* label = @Translation("Sugar CRM"),
* category = @Translation("External"),
* description = @Translation("Webform handler integrating with Sugar CRM."),
* cardinality = \Drupal\webform\Plugin\WebformHandlerInterface::CARDINALITY_SINGLE,
* results = \Drupal\webform\Plugin\WebformHandlerInterface::RESULTS_PROCESSED,
* )
*/
class SugarCrmWebformHandler extends WebformHandlerBase {
/**
* {@inheritdoc}
*/
public function postSave(WebformSubmissionInterface $webform_submission, $update = TRUE) {
# code for Sugar CRM...
}
}
或者,您也可以考虑使用 Webform 的 RemotePostWebformHandler
class,它可能会为您的集成提供一些样板文件。
查看其他资源: