Drupal 6 如何将自定义表单插入Drupal节点视图并处理该节点';提交的数据是什么?

Drupal 6 如何将自定义表单插入Drupal节点视图并处理该节点';提交的数据是什么?,drupal-6,drupal-modules,drupal-fapi,Drupal 6,Drupal Modules,Drupal Fapi,我们正在将销售订单从会计系统导入Drupal 6站点 我们设置了一个名为orders的内容类型 我想为我们的运输供应商建立一个运输模块(不,目前还没有) 我了解如何构建“块”模块和“内容”模块 构建模块的最佳方法是什么?该模块将显示在订单节点的底部,表示他们需要完成的表单(该表单将处理发货) 如果可能,我希望在不创建不同内容类型的情况下执行此操作。如果要将自定义表单附加到每个节点,首先需要(在模块中)执行以下操作: 编写将生成表单的函数(请参阅:)。如果此函数将根据当前正在查看的节点显示与节点

我们正在将销售订单从会计系统导入Drupal 6站点

我们设置了一个名为orders的内容类型

我想为我们的运输供应商建立一个运输模块(不,目前还没有)

我了解如何构建“块”模块和“内容”模块

构建模块的最佳方法是什么?该模块将显示在订单节点的底部,表示他们需要完成的表单(该表单将处理发货)


如果可能,我希望在不创建不同内容类型的情况下执行此操作。如果要将自定义表单附加到每个节点,首先需要(在模块中)执行以下操作:

  • 编写将生成表单的函数(请参阅:)。如果此函数将根据当前正在查看的节点显示与节点相关的数据,那么您可能希望将nid或整个
    $node
    作为参数传递
然后,您必须决定如何将表单插入节点页面(或者以何种方式查看节点),有几种方法可以执行,包括:

  • 在“查看”操作中(即
    $op=='view'
    ),您可以获取表单并将其添加到
    $node->content
  • 将表单作为模板变量添加(请参见:,您可以执行一个
    MYMODULE\u preprocess\u节点(&$vars)
    ),这样您就可以将它放在自定义node.tpl.php中的任何位置
  • 我想还有更多的方法(让你的模块生成一个包含表单的块,等等),这取决于你具体需要什么

    无论您选择哪种方式,获取自定义表单标记的方式都是:

    <?php
    // something like this for hook_nodeapi() way.
    $node->content['body']['value']] .= drupal_get_form('my_custom_form_generating_function', $node);
    // or something like this for the hook_preprocess_node() way.
    $vars['my_custom_form'] = drupal_get_form('my_custom_form_generating_function', $vars['node']);
    
    要明确的是:

    …构建一个模块,该模块将显示在我们的

    Drupal模块不是“出现”的东西。模块是为Drupal站点提供附加功能的扩展。他们可以实现钩子,这些钩子最终可能会生成也可能不会生成将“出现”在站点上的标记


    关于“内容模块”和“块模块”:尽管我看到术语“节点模块”指的是提供新内容类型的模块,但任何模块都可以实现任何挂钩,从而提供块、内容类型,等。

    我也知道Ubercart带有装运模块等,我们将在某个时候使用它,但它并不真正符合目前的要求。我可以了解“块”模块和“内容”模块吗?我猜我可以使用hook_nodeapi,但不确定如何向节点的输出添加新表单
    <?php
    function my_custom_form_generating_function($form_state, $node) { }