Forms 表单的$op变量

Forms 表单的$op变量,forms,drupal,Forms,Drupal,在处理表单时,我很难使用$op变量。看起来$op变量通常是node_api的一部分(我还没有真正使用过),但是表单alter中的$op变量呢 在编辑节点与创建节点时,如何使表单alter应用?中没有$op变量。区分节点编辑和创建表单的标准方法是查看节点是否已经具有nid(节点id)。如果它有一个,您知道它已经存在,否则它仍在创建过程中: function yourModule_form_alter(&$form, &$form_state, $form_id) { // Is

在处理表单时,我很难使用$op变量。看起来$op变量通常是node_api的一部分(我还没有真正使用过),但是表单alter中的$op变量呢


在编辑节点与创建节点时,如何使表单alter应用?

中没有$op变量。区分节点编辑和创建表单的标准方法是查看节点是否已经具有nid(节点id)。如果它有一个,您知道它已经存在,否则它仍在创建过程中:

function yourModule_form_alter(&$form, &$form_state, $form_id) {
  // Is this a node edit/create form at all?
  if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] .'_node_form' == $form_id) {
    // Yes, is the node an already existing one?
    if (isset($form['#node']->nid)) {
      // Yes, existing node, add manipulation for node edit form
    }
    else {
      // No, new node, add manipulation for node create form
    }
  }
}

“编辑节点与创建节点时”是什么意思?你说的是网络表单吗?还是一些自定义表单?@Mike Critenden-这是一个CCK节点表单。通过创建,我的意思是转到路径节点/add/my content type,而不是转到已经在node/1000/edit中创建的节点。当然,还有“视图”,它不显示实际的形式,而是显示现有节点的值。