Drupal 当用户在webform中提交值并单击“提交”时,如何创建节点?

Drupal 当用户在webform中提交值并单击“提交”时,如何创建节点?,drupal,drupal-6,Drupal,Drupal 6,我的网站(D6)有“快速查询表单”(使用webform)&当用户单击webform中的提交按钮时,我需要同时创建一个新节点 当用户单击submit按钮时,如何从webform获取值并将值插入节点 请建议我怎么做 您可以通过创建自定义模块来实现这一点。该模块将具有两个功能: HOOK_form_alter-向现有webform添加额外的提交功能 自定义函数-自定义函数(从HOOK_form_alter调用),用于从提交的webform中获取值并创建节点 在创建模块之前,应该使用核心节点模块和CCK

我的网站(D6)有“快速查询表单”(使用webform)&当用户单击webform中的提交按钮时,我需要同时创建一个新节点

当用户单击submit按钮时,如何从webform获取值并将值插入节点


请建议我怎么做

您可以通过创建自定义模块来实现这一点。该模块将具有两个功能:

  • HOOK_form_alter-向现有webform添加额外的提交功能
  • 自定义函数-自定义函数(从HOOK_form_alter调用),用于从提交的webform中获取值并创建节点
  • 在创建模块之前,应该使用核心节点模块和CCK创建一个内容类型,其中包含与webform相同的所有字段

    钩形 在下面的示例中,在switch case中用模块fir MODULENAME的名称和webform的ID替换XXX。此函数将MODULENAME\u create\u节点添加到Web表单的提交函数数组中。我们将在下面定义MODULENAME\u create\u节点

    <?php
    function MODULENAME_form_alter(&$form, $form_state, $form_id) {
      switch ($form_id) {
    
        case 'webform_client_form_XXX' :
        $first = array_shift($form['#submit']);
        array_unshift($form['#submit'], $first, 'MODULENAME_create_node');
    
        break;
    
      }
    }
    

    Bala-您需要将表单和表单状态传递给自定义函数,如下所示:

    <?php
    function MYMODULENAME_create_node($form, $form_state) {
       // ... above code
    }
    

    您是否可以将“快速查询表单”创建为内容类型,而不是作为Web表单创建,这样它就可以成为用户填写的节点表单?这样会自动创建节点。同时,我必须向管理员发送电子邮件。创建内容时,您可以使用规则模块轻松发送电子邮件。嗨,亚当,谢谢您的回答。提交表单后,我收到错误消息。“警告:为foreach()提供的参数无效。”。你能告诉我该怎么办吗?
    
    <?php
    function MYMODULENAME_create_node($form, $form_state) {
       // ... above code
    }