Php 如何以编程方式将表单添加到Drupal7中的节点?

Php 如何以编程方式将表单添加到Drupal7中的节点?,php,drupal,drupal-7,drupal-fapi,drupal-forms,Php,Drupal,Drupal 7,Drupal Fapi,Drupal Forms,我需要向Drupal7中的节点添加一个编程表单。如何将表单附加到节点 function addtabexample_form($node, &$form_state) { $type = node_type_get_type($node); $form['title'] = array( '#type' => 'textfield', '#title' => check_plain($type->title_label), '#de

我需要向Drupal7中的节点添加一个编程表单。如何将表单附加到节点

function addtabexample_form($node, &$form_state) {
  $type = node_type_get_type($node);

  $form['title'] = array(
    '#type' => 'textfield', 
    '#title' => check_plain($type->title_label), 
    '#default_value' => !empty($node->title) ? $node->title : '', 
    '#required' => TRUE, 
    '#weight' => -5,
  );

  $form['field1'] = array(
    '#type' => 'textfield', 
    '#title' => t('Custom field'), 
    '#default_value' => $node->field1, 
    '#maxlength' => 127,
 );


  return $form;
}

您的代码有一些需要重写的问题。。。 首先,我建议阅读,这是完成工作的一个不错的来源

我不确定如何将$node对象添加到这个。函数参数中有$node,返回值为$form

有关可以嵌入到节点中的表单的示例,请参见(我添加了D7部分)。 但是这样做是非常糟糕的——您将面临函数重新声明问题、索引问题和许多麻烦


我知道这不是一个实际的答案,但我不知道如何用500个字符来编写它。

您可以使用()


这是一个非常方便的片段。谢谢。通过使用此方法,我无法通过提交处理程序函数调用。
function [YOUR_MODULE]_node_view($node, $view_mode, $langcode)
{
    $my_form = drupal_get_form('addtabexample_form', $node);
    $node->content['my_form_attached'] = array(
        '#markup' => drupal_render($my_form),
        '#weight' => 10,
    );
}